我的代码可以在IE中运行,但在Safari、Firefox和Opera中会崩溃。(惊喜)
document.getElementById("DropList").options.length=0;
经过搜索,我了解到它不喜欢的是长度=0。 我试过了……选项=null和var clear=0...长度=clear,结果相同。
我一次对多个对象这样做,所以我正在寻找一些轻量级的JS代码。
我的代码可以在IE中运行,但在Safari、Firefox和Opera中会崩溃。(惊喜)
document.getElementById("DropList").options.length=0;
经过搜索,我了解到它不喜欢的是长度=0。 我试过了……选项=null和var clear=0...长度=clear,结果相同。
我一次对多个对象这样做,所以我正在寻找一些轻量级的JS代码。
当前回答
最简单的解决方案是最好的,所以你只需要:
var list = document.getElementById('list'); while (list.firstChild) { list.removeChild (list.firstChild); } <选择id = "列表" > <选项值= " 0 " > 0 < /选项> <选项值= " 1 " > 1 > < /选项 < /选择>
其他回答
以上答案的代码需要轻微更改以删除列表完整,请检查这段代码。
var select = document.getElementById("DropList");
var length = select.options.length;
for (i = 0; i < length;) {
select.options[i] = null;
length = select.options.length;
}
刷新长度,它将从下拉列表中删除所有数据。 希望这能帮助到一些人。
项目应该反向删除,否则将导致错误。此外,我不建议简单地将值设置为null,因为这可能会导致意外的行为。
var select = document.getElementById("myselect");
for (var i = select.options.length - 1 ; i >= 0 ; i--)
select.remove(i);
或者,如果你喜欢,你可以让它成为一个函数:
function clearOptions(id)
{
var select = document.getElementById(id);
for (var i = select.options.length - 1 ; i >= 0 ; i--)
select.remove(i);
}
clearOptions("myselect");
如果您希望使用轻量级脚本,那么请使用jQuery。 在jQuery中,删除所有选项的解决方案如下:
$("#droplist").empty();
Try
document.getElementsByTagName("Option").length=0
或者可以查看removeChild()函数。
或者如果你使用jQuery框架。
$("DropList Option").each(function(){$(this).remove();});
我想指出的是,最初问题中的问题在今天已经没有意义了。还有一个更简短的解决方案:
selectElement.length = 0;
我测试过,这两个版本都可以在Firefox 52、Chrome 49、Opera 36、Safari 5.1、IE 11、Edge 18、最新版本的Chrome、Firefox、三星互联网和UC浏览器(Android)、Safari (iPhone 6S)和Android 4.2.2常规浏览器上运行。我认为可以肯定地说,它与目前的任何设备都是完全兼容的,所以我推荐这种方法。