2011-03-16 89 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時會更新。所以要抓住它們,你必須倒退。 ;)