2011-03-16 57 views
0
for (var x in myOpts) { 
    if(myOpts.hasOwnProperty(x)) { 
     var t = document.createElement("OPTION"); 
     t.setAttribute("id",x); 
     t.value = x; 
     t.appendChild(document.createTextNode(myOpts[x])); 
     selectObj.appendChild(t); 
    } 
} 

如何正确清除或删除createdTextNodes?从createdTextNode删除所有texnode

if (document.getElementById('rolec')) { 
    var rd = document.getElementById('rolec'); 
    while (rd.firstChild) { 
     rd.removeChild(rd.firstChild); 
    } 
} 

有了这个只有第一,它为空值

+0

你最后一个代码片段中缺少'}'。 – pimvdb 2011-03-16 22:05:47

+0

首先看起来像't.setAttribute(“id”,“rolec”);'可能最终会在同一个文档中出现多个id。 – 2011-03-16 22:18:52

回答

0

如果我正确地理解你的问题,你要遍历以相反的顺序将它们全部删除一个接一个子节点的列表;

var rdChildren = rd.childNodes; 
for(i = (rdChildren.length - 1); i >= 0; i--) 
{ 
    rd.removeChild(rdChildren[i]); 
} 

DOM节点列表是“活的”,这意味着它们在操作DOM时会更新。所以要抓住它们,你必须倒退。 ;)