jQuery 选择列表删除所有选项

Posted

技术标签:

【中文标题】jQuery 选择列表删除所有选项【英文标题】:jQuery select list removes all options 【发布时间】:2010-11-09 10:23:04 【问题描述】:

我有一个<select> 列表,其中已填充了几个选项,但想删除这些选项以重新开始。

我正在使用 jQuery 并尝试了以下方法:

$("#selectId").length = 0;

但这似乎没有效果。

我的部分问题是我正在使用 Firebug 调试 javascript,但调试器不会在断点处中断,所以我看不到发生了什么。当 JavaScript 在我的 html 文件的 <head> 内时,它应该中断吗?

【问题讨论】:

【参考方案1】:

这样就可以了:

$('#selectId').html('');

【讨论】:

这不会完全删除 @therealprashant: .html 设置元素的 inner html,因此将其设置为空字符串将删除所有子节点,但保留下拉列表本身。 【参考方案2】:

这也有效。

$("#selectId option").remove(); 

【讨论】:

这似乎是更整洁的解决方案 我比接受的答案更喜欢这个,因为删除特定的“选项”标签更安全。【参考方案3】:

$("#selectId").empty(); 为我工作。

$("#selectId option").remove(); 从 DOM 中删除了选择。

目前使用jQuery JavaScript Library v1.7.1

【讨论】:

【参考方案4】:

最快的方法:

$("#selectId").empty();

这里有一些测试: http://jsperf.com/find-remove-vs-empty

我不相信这些测试。 看到这个堆栈溢出问题:How do you remove all the options of a select box and then add one option and select it with jQuery?

【讨论】:

【参考方案5】:
$("#selectId").options.length = 0;

这实际上不会像写的那样工作,因为它使用的是 jQuery 选择器。不过,如果您在选择列表上使用直接的 DOM getElementById,它会起作用。 AKX 或 d. 的响应都会让您正确。

【讨论】:

【参考方案6】:

如果没有 jquery:

javascript SELECT remove()

【讨论】:

【参考方案7】:

多选下拉菜单试试这个。

$('#FeatureId').multiselect("deselectAll", false).multiselect("refresh");

【讨论】:

以上是关于jQuery 选择列表删除所有选项的主要内容,如果未能解决你的问题,请参考以下文章

如何使 jQuery 自动完成列表显示所有选项 onfocus 并在选择选项后隐藏?

jQuery从下拉列表中删除一个选项,给定选项的文本/值

单击删除类并使用 JQuery 取消选择输入

从下拉列表中获取所选文本,但使用jQuery删除数值

使用 jQuery 根据第一个选择列表选项更改第二个选择列表

Select2 从过滤列表中选择所有选项以进行多项选择