从createdTextNode中删除所有texnode

时间:2011-03-16 22:01:30

标签: javascript dhtml

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 ???

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

这只有第一个而且是空值

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,您必须以相反的顺序迭代子节点列表,逐一删除它们;

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

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