#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 . 🙂