我正在尝试在 <select>
中预选一个选项基于变量的标记。
但是,当通过 jQuery 选择元素并使用 .each() 对其进行迭代时,它似乎返回整数而不是对象,因此 .value 等不适用。
这是我的代码:
$("#id option").each(function(option){
if(option.value == "myValue") {
option.value.selected = "true";
}
});
最佳答案
如果您想要元素引用,您的 each
函数不正确,那么 each
中应该有第二个参数,因为第一个参数是 index
引用范围。其次,您可以简单地使用 val()
函数来设置下拉列表的值。
$("#id option").each(function(index,option){
if(option.value == "myValue") {
$("#id").val('myValue');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id='id'>
<option value="volvo">volvo</option>
<option value="saab">Saab</option>
<option value="myValue">myValue</option>
<option value="audi">Audi</option>
</select>
或者您可以简单地使用 $(this)
作为:
$("#id option").each(function(){
//check value of each option
if($(this).val() == "myValue") {
$("#id").val('myValue');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id='id'>
<option value="volvo">volvo</option>
<option value="saab">Saab</option>
<option value="myValue">myValue</option>
<option value="audi">Audi</option>
</select>
关于javascript - 为什么 jQuery 返回整数而不是对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49569333/