如何清除下拉框中的所有选项?
我的代码在IE中工作,但在Safari,Firefox和Opera中断。 (大惊喜)
document.getElementById("DropList").options.length=0;
search后,我知道它是不喜欢的length=0
。
我试过...options=null
和var clear=0; ...length=clear
var clear=0; ...length=clear
相同的结果。
我一次这样做到多个对象,所以我正在寻找一些轻量级的JS代码。
您可以使用以下来清除所有元素。 注意
var select = document.getElementById("DropList"); var length = select.options.length; for (i = 0; i < length; i++) { select.options[i] = null; }
要删除select的html对象的选项,你可以使用这段代码:
function removeOptions(selectbox) { var i; for(i = selectbox.options.length - 1 ; i >= 0 ; i--) { selectbox.remove(i); } } //using the function: removeOptions(document.getElementById("mySelectObject"));
这将在所有浏览器中工作。 =)
如果你想有一个轻量级的脚本,去jQuery。 在jQuery中,删除所有选项的解决scheme将如下所示: $("#droplist").empty();
这是最好的方法:
function (comboBox) { while (comboBox.options.length > 0) { comboBox.remove(0); } }
可能,不是最干净的解决scheme,但它肯定比逐个删除更简单:
document.getElementById("DropList").innerHTML = "";
function removeOptions(obj) { while (obj.options.length) { obj.remove(0); } }
这是最短的方法:
document.getElementById('mySelect').innerText = null
一行,不行,没有JQuery,简单。
与PrototypeJS :
$('yourSelect').select('option').invoke('remove');
如果您使用的是JQuery,并且您的select控件具有ID“DropList”,则可以通过以下方式删除其选项:
$('#DropList option').remove();
其实它适用于我的任何选项列表,如datalist。
希望它有帮助。
请注意,一个select可以有两个
– optgroup&
– 选项集合
作为孩子。
所以,
方法#1
var selectElement = document.getElementById('myselectid'); selectElement.innerHTML = '';
方法#2
var selectElement = document.getElementById('myselectid'); selectElement.textContent = '';
我testing过,都在Chrome上工作。
我喜欢简单的,老式的方法#1。
使用JQuery是一个更漂亮,更短,更聪明的方法来做到这一点!
$('#selection_box_id').empty();
尝试
document.getElementsByTagName("Option").length=0
或者查看removeChild()函数。
或者如果你使用jQuery框架。
$("DropList Option").each(function(){$(this).remove();});
转过去 原因是每次删除后大小都会减less。
for (i = (len-1); i > -1; i--) { document.getElementById("elementId").remove(i); }
我认为这是最好的解决办法。 是
$( “#myselectid”)HTML( '')。
var select = document.getElementById('/*id attribute of your select here*/'); for (var option in select){ select.remove(option); }
以上答案的代码需要稍作修改才能删除完整的列表,请检查这段代码。
var select = document.getElementById("DropList"); var length = select.options.length; for (i = 0; i < length;) { select.options[i] = null; length = select.options.length; }
刷新长度,它会从下拉列表中删除所有的数据。 希望这会帮助别人。
这可以用来清除选项:
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>
while(document.getElementById("DropList").childNodes.length>0) { document.getElementById("DropList").removeChild(document.getElementById("DropList").childNodes[0]); }
如果您必须支持IE,并且您的select列表中有超过100个项目,我强烈build议您考虑使用如下函数replaceselect项:
function clearOptions(select) { var selectParentNode = select.parentNode; var newSelect = select.cloneNode(false); // Make a shallow copy selectParentNode.replaceChild(newSelect, select); return newSelect; }
select参数应该是来自jqueryselect器或document.getElementBy调用的元素。 唯一的缺点就是你失去了连接到select的事件,但是你可以很容易地将它们重新连接起来,因为它是从函数返回的。 我正在使用一个具有〜3k项目的select,并且在IE9上需要4秒才能清除select,所以我可以使用新内容对其进行更新。 几乎立即这样做。
最简单的解决scheme是最好的,所以你只需要:
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>
今天我面临同样的问题,我重新加载select框时如下所示。 (在平原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); }
var select =$('#selectbox').val();
项目应该反向移除,否则会导致错误。 此外,我不build议简单地将值设置为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");
$(“#yourDDL”)。get(0).options.length = 0;