為什么一開始要按兩下才開始刪除節(jié)點(diǎn),而且一下刪除兩個(gè)。后面就是按一下刪除一個(gè)了?
<script?type="text/javascript">function?clearText()?{??var?content=document.getElementById("content");??var?a=content.childNodes;??//?在此完成該函數(shù)??for(i=0;i<a.length;i++){??????var?r=content.removeChild(content.childNodes[i]);??????r=null;??}??}</script>
2020-03-22
加上
x = null;
2020-01-20
我也是這樣,后面想明白了。這是因?yàn)閯h除子節(jié)點(diǎn)的同時(shí),子節(jié)點(diǎn)數(shù)組的數(shù)量也減少了。以你的代碼為例,最開始a數(shù)組長(zhǎng)度為11(包含了若干空值):["","html","","php","","javascript","","jquery","","java",""]
第一次點(diǎn)按鈕時(shí),for i=0時(shí),刪除了第一個(gè)空值。此時(shí)數(shù)組的第一個(gè)元素被刪掉了,所以i=1時(shí),刪除的其實(shí)是第二個(gè)空值,一次類推,恰巧把所有空值給刪除了,所以你點(diǎn)第一次按鈕就看到?jīng)]有任何變化!
當(dāng)你第二次點(diǎn)按鈕時(shí),數(shù)組變成了):["html","php","javascript","jquery","java"]。同上,這次刪除了html、javascript、java,所以剩下了php和jquery!
第三次點(diǎn)按鈕,剩下了jquery。
第四次點(diǎn)按鈕,才刪完。
所以說(shuō),要一次性全刪完,要改進(jìn)算法。
2019-11-20
<script type="text/javascript">
// 清除空白節(jié)點(diǎn)
function cleanWhitespace(element) ??
{ ??
? ? for(i=0; i<element.childNodes.length; i++) ??
? ? { ??
? ? ? ? var node = element.childNodes[i]; ??
? ? ? ? if(node.nodeType == 3 && !/\S/.test(node.nodeValue)) ??
? ? ? ? { ??
? ? ? ? ? ? node.parentNode.removeChild(node); ??
? ? ? ? } ?
? ? } ??
} ??
cleanWhitespace(document.getElementById("content"));
function clearText() {
? var content=document.getElementById("content");
? // 在此完成該函數(shù)
? var xchild=content.childNodes;
? for(i=0;i<xchild.length;i++){
? ? ?var xclose=content.removeChild(xchild[i]);
? ? ? xclose=null;
? ? ? return xclose;
? }
}
</script>
<button onclick="clearText()">清除節(jié)點(diǎn)內(nèi)容</button>
2019-11-20
因?yàn)榭瞻坠?jié)點(diǎn)的問(wèn)題,除了IE瀏覽器,其他瀏覽器都會(huì)計(jì)算空白節(jié)點(diǎn),第一點(diǎn)執(zhí)行了,只不過(guò)刪除的是空白節(jié)點(diǎn),你可以清除空白節(jié)點(diǎn)
2019-11-19
我的是點(diǎn)擊一下沒反應(yīng),第二次點(diǎn)擊他會(huì)直接刪除三個(gè)。接來(lái)下就正常刪除了,不知道為啥
2019-11-17
function clearText() {
? var content=document.getElementById("content");
? // 在此完成該函數(shù)
? var sons = content.childNodes;
? for(var i=sons.length-1;i>0;i--){
? ? ? content.removeChild(sons[0]);
? }
??
}