怎么點擊第一下沒有反應,然后再點擊一下刪除了3個,然后再點擊依次刪除一個
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
</head>
<body>
<div id="content">
? <h1>html</h1>
? <h1>php</h1>
? <h1>javascript</h1>
? <h1>jquery</h1>
? <h1>java</h1>
</div>
<script type="text/javascript">
function clearText() {
? var content=document.getElementById("content");
? for(i=0;i<content.childNodes.length;i++)
? {
? ? ? var x=content.removeChild(content.childNodes[i]);
? ? ? x=null;
? }
}
</script>
<button onclick="clearText()">清除節(jié)點內容</button>
2016-08-08
不能用i++,因為一共有11個節(jié)點,往往你運行到一半的時候就會停止了,那是因為你把某個節(jié)點刪除之后,后面的節(jié)點就會往前排。
content.childNodes[0]刪掉后,content.childNodes[1]就變成了content.childNodes[0],然后你下一步刪掉的是content.childNodes[1],就是原來的content.childNodes[2],以此類推就會造成一次性刪不完的結果。
2016-07-31
感謝大神解惑
2016-07-28
//一次全都刪完
<script type="text/javascript">
function clearText() {
? var content=document.getElementById("content");
? // 在此完成該函數
? var hs=content.childNodes;
? for(var i=0;i<hs.length;i++){
?if(hs[i].nodeType==1){
? var fn=hs[i].firstChild;
? ? ? var a=hs[i].removeChild(fn);
? a=null;
?}
?}
}
</script>
2016-07-13
2016-06-24
這樣不是最簡單?(抖個機靈跑
2016-06-06
所以你們在都用了答主的代碼后難道問題都解決了?我怎么還是一次性刪除三個?
2016-04-13
上面說的廢話一大堆:出現要點擊多次的情況才能刪除的情況,本質原因,都是你忽略了childNodes是一個會實時更新的數據結構(當你對目標節(jié)點進行操作的時候),childNodes is live list。
2016-04-08
節(jié)點刪除、添加是實時反映在節(jié)點樹中的,這也是為什么說諸如childNodes獲取到的是類似數組的nodeList,因為跟數組是不一樣的。
2016-03-06
?for(var i=0;i<num;i++){
? ? ? content.removeChild(oh[0]);
? }
把i換成0就可以了,list是不斷推進的,不理解的可以開chrome調試面板看每一步參數的值
2016-02-28
<script type="text/javascript">
function clearText() {
? var content=document.getElementById("content");
? // 在此完成該函數
? var len=content.childNodes.length
? for(i=0;i<len;i++){
? ? ? var x=content.removeChild(content.childNodes[0]);
? ? ? document.write("刪除節(jié)點的內容為:"+x.innerHTML+"</br>");
? }
}
為什么在IE瀏覽器中顯示的一直都是 ?undefined,并且只有一行,但是在其他的瀏覽器中顯示的都正常,共有11行?
效果如下圖: