您如何仅遍历所有选择的当前值,而不是选项?
我已经尝试过这种变化:
$('select[name^="mydropdowns"] :selected').each(function() {
if ($(this).val() != 'Test') {
alert("Found.");
}
});
“测试”是几个下拉菜单中的默认选择值,但此脚本从不返回警报。我在这里做错了什么?
您如何仅遍历所有选择的当前值,而不是选项?
我已经尝试过这种变化:
$('select[name^="mydropdowns"] :selected').each(function() {
if ($(this).val() != 'Test') {
alert("Found.");
}
});
“测试”是几个下拉菜单中的默认选择值,但此脚本从不返回警报。我在这里做错了什么?
只需遍历选择
$('select[name^="mydropdowns"]').each(function() {
if ($(this).val() != 'Test') {
alert("Found.");
}
});
val()
适用于input/select/textarea
元素而不适用于option
元素。
来自 jQuery 文档:http ://api.jquery.com/val/
.val() 方法主要用于获取输入、选择和文本区域等表单元素的值。
SELECT
本身不能选择,可以OPTION
。这就是您没有收到警报的原因。
在这里,我已经为上述问题完成了完整的垃圾箱。请检查一次演示链接。
演示: http ://codebins.com/bin/4ldqp7h
HTML
<div>
<input type="button" id="btn1" value="Check Dropdown Values" />
</div>
<div>
<select name="mydropdowns1">
<option value="Test">
Test
</option>
<option value="Test1">
Test1
</option>
<option value="Test2">
Test2
</option>
<option value="Test3">
Test3
</option>
<option value="Test4">
Test4
</option>
</select>
<select name="mydropdowns2">
<option value="Test">
Test
</option>
<option value="Test1">
Test1
</option>
<option value="Test2">
Test2
</option>
<option value="Test3">
Test3
</option>
<option value="Test4">
Test4
</option>
</select>
<select name="mydropdowns3">
<option value="Test">
Test
</option>
<option value="Test1">
Test1
</option>
<option value="Test2">
Test2
</option>
<option value="Test3">
Test3
</option>
<option value="Test4">
Test4
</option>
</select>
<select name="mydropdowns4" multiple="multiple">
<option value="Test">
Test
</option>
<option value="Test1">
Test1
</option>
<option value="Test2" selected="selected">
Test2
</option>
<option value="Test3">
Test3
</option>
<option value="Test4" selected="selected">
Test4
</option>
</select>
</div>
jQuery:
$(function() {
$("#btn1").click(function() {
$('select[name^="mydropdowns"]').each(function() {
if ($(this).val() != "Test") {
alert("Dropdown[Name=" + $(this).attr('name') + "] has selected value " + $(this).val());
}
});
});
});
如果我没记错的话,我认为问题是如何迭代选择元素中的选项。
这是您可以做到的方法。这使用浏览器的控制台(chrome 和 firefox)来显示输出
var dropdown = $("select[name='dropdown']");
$('option', dropdown).each(function(){
var val = $(this).prop("value");
console.log(val);
});