2010-05-17 29 views
0

我有一个选择的标签,有些选项如何删除除第二的所有选项中的JavaScript

<select id="sel"> 
    <option>text1</option> 
    <option>text2</option> 
    <option>text3</option> 
    <option>text4</option> 
</select> 

我想删除除第二的所有选项,也就是我想

<select id="sel"> 
    <option>text2</option> 
</select> 

我认为它必须看起来像这样

document.getElementById('sel').options.length= 0; 

但它删除所有列表,所以你可以帮我。


感谢

回答

1

你应该能够修改此做你想要的。

function removeChildrenFromNode(node) 
{ 
    if(node === undefined || node ==== null) 
    { 
     return; 
    } 

    var len = node.childNodes.length; 

    while (node.hasChildNodes()) 
    { 
     node.removeChild(node.firstChild); 
    } 
} 
+0

有什么功能,删除所有的孩子的? 我用来写document.getElementById('sel')。options.length = 0,这是真的吗? – Simon 2010-05-17 16:41:20

+0

我不认为有一个功能来删除所有的子节点,你有什么工作正常。上面的功能应该适用于所有节点类型。 – Nalum 2010-05-17 17:04:54

2
var 
    sel = document.getElementById("sel"), 
    options = sel.getElementsByTagName("option"); 
for (var i=options.length-1; i>=2; i--) { 
    sel.removeChild(options[i]); 
} 
sel.removeChild(options[0]); 
相关问题