我的代码可以在IE中运行,但在Safari、Firefox和Opera中会崩溃。(惊喜)

document.getElementById("DropList").options.length=0;

经过搜索,我了解到它不喜欢的是长度=0。 我试过了……选项=null和var clear=0...长度=clear,结果相同。

我一次对多个对象这样做,所以我正在寻找一些轻量级的JS代码。


当前回答

可以使用以下命令清除所有元素。

var select = document.getElementById("DropList");
var length = select.options.length;
for (i = length-1; i >= 0; i--) {
  select.options[i] = null;
}

其他回答

var select = document.getElementById('/*id attribute of your select here*/');
for (var option in select){
    select.remove(option);
}

Try

document.getElementsByTagName("Option").length=0

或者可以查看removeChild()函数。

或者如果你使用jQuery框架。

$("DropList Option").each(function(){$(this).remove();});

注意,一个选择可以同时具有这两种情况 - optgroup & -选项集合 就像它的孩子一样。

So,

方法# 1

var selectElement = document.getElementById('myselectid');
selectElement.innerHTML = '';

方法# 2

var selectElement = document.getElementById('myselectid');
selectElement.textContent = '';

我测试过,两者都可以在Chrome上运行。 我喜欢简单的,老式的方法#1。

这是最好的方法:

function (comboBox) {
    while (comboBox.options.length > 0) {                
        comboBox.remove(0);
    }        
}

对于Vanilla JavaScript,有一种简单而优雅的方法来做到这一点:

for(var o of document.querySelectorAll('#DropList > option')) {
  o.remove()
}