在这个jsfiddle中 - http://jsfiddle.net/3QrC4/3/ - 我希望选择具有值" Calibri"选定的选项。但最后一个选项成为选定的选项。有没有人看到这个问题?
由于
$(function() {
$('#fontname option').filter(function() {
return value="Calibri";
}).prop('selected', true);
})
答案 0 :(得分:1)
尝试此代码(or try it on JSFiddle):
$(function() {
$('#fontname > option').filter(function() {
return this.value === 'Calibri';
}).prop('selected', true);
});
在函数内部,未定义value
。
但是,this
引用当前元素,因此我们得到它的value
。
此外,您需要使用==
或===
来比较JavaScript中的两个值。
答案 1 :(得分:1)
更简单的方法是使用<select>
val()
的值
$('#fontname').val("Calibri");/* pass in array if using a "multiple" select */
如果选中selected
选项,则会返回预期结果
的 DEMO 强>
答案 2 :(得分:0)
代码:
$(function() {
$('#fontname option').filter(function() {
return this.value=="Calibri";
}).prop('selected', true);
})
在过滤器函数中,this
引用集合中的一个元素,并且每个集合将运行一次函数。函数是否为该元素返回true或false确定它是否应包含在集合中。
注意:a=b
是赋值运算符,意思是&#34;使值与b&#39; s相同。 a==b
是松散的等式运算符,意思是&#34;是等价于b的值的值?&#34;