<select size="2">
<option selected="selected">Input your option</option>
<option>Input your option</option>
</select>
使用jQuery优雅地取消选项的最佳方法是什么?
<select size="2">
<option selected="selected">Input your option</option>
<option>Input your option</option>
</select>
使用jQuery优雅地取消选项的最佳方法是什么?
当前回答
$(option).removeAttr('selected') //replace 'option' with selected option's selector
其他回答
到目前为止,答案只适用于IE6/7中的多项选择;对于更常见的非多选择,您需要使用:
$("#selectID").attr('selectedIndex', '-1');
这在flyfishr64链接的帖子中有解释。如果你仔细看,你会发现有两种情况——多/非多。没有什么能阻止你为了一个完整的解决方案而改变两者:
$("#selectID").attr('selectedIndex', '-1').find("option:selected").removeAttr("selected");
使用removeAttr……
$("option:selected").removeAttr("selected");
或道具
$("option:selected").prop("selected", false)
简单的方法
(“select”美元)。瓦尔(”)
我只是在select本身上使用了这个,它做到了。
我使用的是jQuery 1.7.1。
在你的选择中设置一个id,像这样: <select id="foo" size="2">
然后你可以使用: $ (" # foo”)。道具(“selectedIndex”,0).change ();
这里有很多答案,但不幸的是,所有的答案都很旧,因此依赖于attr/removeAttr,这真的不是正确的方法。
@coffeeyesplease正确地提到了一个好的、跨浏览器的解决方案
$("select").val([]);
另一个好的跨浏览器解决方案是
// Note the use of .prop instead of .attr
$("select option").prop("selected", false);
你可以看到它在运行自检。在IE 7/8/9, FF 11, Chrome 19上测试。