為什么一開始要按兩下才開始刪除節(jié)點,而且一下刪除兩個。后面就是按一下刪除一個了?
<script?type="text/javascript">function?clearText()?{??var?content=document.getElementById("content");??var?a=content.childNodes;??//?在此完成該函數??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
我也是這樣,后面想明白了。這是因為刪除子節(jié)點的同時,子節(jié)點數組的數量也減少了。以你的代碼為例,最開始a數組長度為11(包含了若干空值):["","html","","php","","javascript","","jquery","","java",""]
第一次點按鈕時,for i=0時,刪除了第一個空值。此時數組的第一個元素被刪掉了,所以i=1時,刪除的其實是第二個空值,一次類推,恰巧把所有空值給刪除了,所以你點第一次按鈕就看到沒有任何變化!
當你第二次點按鈕時,數組變成了):["html","php","javascript","jquery","java"]。同上,這次刪除了html、javascript、java,所以剩下了php和jquery!
第三次點按鈕,剩下了jquery。
第四次點按鈕,才刪完。
所以說,要一次性全刪完,要改進算法。
2019-11-20
<script type="text/javascript">
// 清除空白節(jié)點
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");
? // 在此完成該函數
? 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é)點內容</button>
2019-11-20
因為空白節(jié)點的問題,除了IE瀏覽器,其他瀏覽器都會計算空白節(jié)點,第一點執(zhí)行了,只不過刪除的是空白節(jié)點,你可以清除空白節(jié)點
2019-11-19
我的是點擊一下沒反應,第二次點擊他會直接刪除三個。接來下就正常刪除了,不知道為啥
2019-11-17
function clearText() {
? var content=document.getElementById("content");
? // 在此完成該函數
? var sons = content.childNodes;
? for(var i=sons.length-1;i>0;i--){
? ? ? content.removeChild(sons[0]);
? }
??
}