<select size="2">
<option selected="selected">Input your option</option>
<option>Input your option</option>
</select>

使用jQuery优雅地取消选项的最佳方法是什么?


当前回答

非常感谢你的解决方案。

单选组合列表的解决方案非常有效。这是我在很多网站上搜索后发现的。

$("#selectID").attr('selectedIndex', '-1').children("option:selected").removeAttr("selected");

其他回答

到目前为止,答案只适用于IE6/7中的多项选择;对于更常见的非多选择,您需要使用:

$("#selectID").attr('selectedIndex', '-1');

这在flyfishr64链接的帖子中有解释。如果你仔细看,你会发现有两种情况——多/非多。没有什么能阻止你为了一个完整的解决方案而改变两者:

$("#selectID").attr('selectedIndex', '-1').find("option:selected").removeAttr("selected");

非常感谢你的解决方案。

单选组合列表的解决方案非常有效。这是我在很多网站上搜索后发现的。

$("#selectID").attr('selectedIndex', '-1').children("option:selected").removeAttr("selected");
$("#selectID option:selected").each(function(){
  $(this).removeAttr("selected");
});

这将遍历每个项目,只取消选中的项目

一个快速谷歌发现这篇文章,描述了如何在IE中为单个和多个选择列表做你想做的事情。解决方案似乎也很优雅:

$('#clickme').click(function() {
        $('#selectmenu option').attr('selected', false);

}); 

这个问题已经问了一段时间了,我还没有在旧的浏览器上测试过,但在我看来,一个更简单的答案是

$("#selectID").val([]);

.val()也适用于select http://api.jquery.com/val/