Получение значения элемента jquery

#javascript #jquery #html

Вопрос:

Я пытаюсь выполнить простой условный оператор, основанный на значении <select> элемента, используя jQuery. Это прекрасно работает:

 var WantCategory = document.getElementById('WantCategory').value
if ((WantCategory <= 0) || (WantCategory >= 4)) {
    alert('hi')
}
 

Это не работает:

 var WantCategory =$('select.WantCategory').val()
if ((WantCategory <= 0) || (WantCategory >= 4)) {
    alert('hi')
}
 

Вот html-часть

 <label for="WantCategory">Item Category
    <select id="WantCategory">
        <optgroup label="Group of Options">
            <option value="0"></option>
            <option value="1">Option 1</option>
            <option value="2">Option 2</option>
            <option value="3">Option 3</option>
        </optgroup>
    </select>
</label>
 

Комментарии:

1. Вы выбираете по классу, а не по идентификатору.

Ответ №1:

Попробуй это:

 var WantCategory = $('select#WantCategory').val();
if ((WantCategory <= 0) || (WantCategory >= 4)) {
    alert('hi')
}
 

Ваш исходный код выбирался по классу, а не по идентификатору.

Ответ №2:

var val = $(#WantCategory).Идентификатор val() должен быть уникальным, поэтому вам не нужно имя тега

Ответ №3:

Если идентификатор в выборе уникален (что в идеале и должно быть), то вы должны быть в состоянии просто сделать:

 var WantCategory = $('#WantCategory').val();
 

Комментарии:

1. Не «в идеале», он должен быть уникальным в соответствии со спецификацией HTML W3C . 🙂