Answers:
您可以使用以下内容清除所有元素。
var select = document.getElementById("DropList");
var length = select.options.length;
for (i = length-1; i >= 0; i--) {
select.options[i] = null;
}
empty()
,所以您可以这样做$("DropList").empty();
要删除的HTML元素的选项select
,您可以使用remove()
方法:
function removeOptions(selectElement) {
var i, L = selectElement.options.length - 1;
for(i = L; i >= 0; i--) {
selectElement.remove(i);
}
}
// using the function:
removeOptions(document.getElementById('DropList'));
删除options
倒退很重要;该remove()
方法重新排列了options
集合。这样,可以确保要删除的元素仍然存在!
如果您希望拥有一个轻量级的脚本,请使用jQuery。在jQuery中,删除所有选项的解决方案如下:
$("#droplist").empty();
for (a in select.options) { select.options.remove(0); }
工作正常时,添加jQuery的行为与“轻量级”相反。
$("#droplist").empty();
香草JS相比,一百行类型代码的可读性使其非常值得添加jQuery。如果我们在谈论简单网页的标记/化妆品,那么您100%正确。
可能不是最干净的解决方案,但绝对比一一删除要简单:
document.getElementById("DropList").innerHTML = "";
function removeOptions(obj) {
while (obj.options.length) {
obj.remove(0);
}
}
如果使用的是JQuery,并且选择控件的ID为“ DropList”,则可以通过以下方式删除其选项:
$('#DropList option').remove();
实际上,它适用于任何选项列表,例如数据列表。
希望能帮助到你。
请注意,一个选择可以同时
包含-optgroup和-options
集合
作为其子项。
所以,
方法1
var selectElement = document.getElementById('myselectid');
selectElement.innerHTML = '';
方法#2
var selectElement = document.getElementById('myselectid');
selectElement.textContent = '';
我测试了,两者都可以在Chrome上运行。
我喜欢更简单,更老式的方法#1。
$select.html('')
这可以用来清除选项:
function clearDropDown(){
var select = document.getElementById("DropList"),
length = select.options.length;
while(length--){
select.remove(length);
}
}
<select id="DropList" >
<option>option_1</option>
<option>option_2</option>
<option>option_3</option>
<option>option_4</option>
<option>option_5</option>
</select>
<button onclick="clearDropDown()">clear list</button>
倒退。原因是每次移除后尺寸都会减小。
for (i = (len-1); i > -1; i--) {
document.getElementById("elementId").remove(i);
}
var select = document.getElementById("DropList");
var length = select.options.length;
for (i = 0; i < length; i++) {
select.options[i].remove();
}
希望这段代码对您有帮助
我认为那是最好的解决方案。是
$(“#myselectid”)。html('');
最简单的解决方案是最好的,因此您只需要:
var list = document.getElementById('list');
while (list.firstChild) {
list.removeChild(list.firstChild);
}
<select id="list">
<option value="0">0</option>
<option value="1">1</option>
</select>
物品应反向取出,否则会导致错误。另外,我不建议您简单地将值设置为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");
如果必须支持IE,并且选择列表中有100多个项目,则强烈建议您考虑使用以下功能替换选择:
function clearOptions(select) {
var selectParentNode = select.parentNode;
var newSelect = select.cloneNode(false); // Make a shallow copy
selectParentNode.replaceChild(newSelect, select);
return newSelect;
}
select参数应该是来自jquery选择器或document.getElementBy调用的元素。唯一的缺点是,您丢失了已连接到选择的事件,但是当它从函数中返回时,您可以轻松地重新附加它们。我正在使用一个约有3000个项目的选择,并且在IE9上需要4秒钟才能清除选择,因此我可以使用新内容对其进行更新。这样几乎可以立即做到。
$('#selectbox').replaceWith($('#selectbox')[0].cloneNode(false));
今天,我遇到了同样的问题,重新加载选择框时,我做了如下操作。(在普通JS中)
var select = document.getElementById("item");
select.options.length = 0;
var opt = document.createElement('option');
opt.value = 0;
opt.innerHTML = "Select Item ...";
opt.selected = "selected";
select.appendChild(opt);
for (var key in lands) {
var opt = document.createElement('option');
opt.value = lands[key].id;
opt.innerHTML = lands[key].surveyNo;
select.appendChild(opt);
}
<option selected>
??。(谷歌把我们放在这里,但它不在这里)...参见document.getElementById(“ form1”)。reset()实际解决方案。