#jquery #if-statement
#jquery #if-оператор
Вопрос:
У меня есть выпадающее окно выбора, и с помощью операторов jQuery if я хочу задать элемент div с некоторым текстом, вот мой код:
<select id="drop">
<option value="Select">Choose an option...</option>
<option value="Blue" stock="0">Blue</option>
<option value="Pink,15.00" stock="1">Pink</option>
<option value="Red" stock="2">Red</option>
</select>
$('#drop').change(function() {
if ($(this).val() == 'Pink,15.00') {
$(".price-tag > span").text("Pink 15.00");
}
if ($(this).val() == 'Red') {
$(".price-tag > span").text("Red 5.00");
}
else {
$(".price-tag > span").text("5.00");
}
});
Приведенный выше код отлично работает, когда я выбираю красный параметр в выпадающем списке, но он не работает, когда выбран розовый, я полагаю, что у jQuery есть проблемы с оператором if .val, содержащим запятую или точку «Розовый, 15.00».
Я мог бы обойти это, проверив текст в опции, а не значение. Не уверен, как это сделать, что-то вроде option:выбрано.
Помощь приветствуется.
Спасибо
Ответ №1:
Добавьте else
перед вторым if
оператором. В настоящее время последнее else
условие всегда выполняется, когда значение не является красным, перезаписывая ранее установленное «pink».
$('#drop').change(function() {
if ($(this).val() == 'Pink,15.00') {
$(".price-tag > span").text("Pink 15.00");
}
else if ($(this).val() == 'Red') { //Add else!
$(".price-tag > span").text("Red 5.00");
}
else {
$(".price-tag > span").text("5.00");
}
});