jQuery находит текст параметра вместо использования Val

#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");
    }  
});