怎么點擊第一下沒有反應,然后再點擊一下刪除了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()">清除節點內容</button>
2015-01-13
自己編就想不到這么多==
2014-12-24
唔,我也遇到這個問題,看到結尾,我懂了,謝謝。
2014-12-08
有意思,子節點數組的長度是動態變化的,那看來DOM操作很耗內存資源吧?
2014-12-04
這段代碼是個變值,沒循環一次,都會-1
2014-11-14
該任務,要注意一些問題
1. 瀏覽器兼容問題。
content孩子節點:
ie下是5個節點,chrome等瀏覽器是11個節點(因為出現了空白節點,如忘記了可以看看9-11節)。
2. 不管你使用正序還是倒序刪除節點,要注意在刪除節點同時,content孩子節點的個數和位置也在變化。所以最好刪除時正序總刪除第一個,倒序總刪除最后一個。
3.? 可以使用for或while 循環,使用for循環時注意。
不要把i<content.childNodes.length做為判斷條件,舉例說明,IE下執行,節點個數5個,當我點一次刪除按鈕。
注意:5個節點分別對應下標是從0開始:??? 1[0]???????? 2[0]???????? 3[0]?????????? 4[0]????????? 5[0]?
i=0?????content.childNodes.length=5????? 0<5? 刪除第一個節點后,繼續循環
i=1?????content.childNodes.length=4????? 1<4?? 刪除第二個節點后,繼續循環
i=2?????content.childNodes.length=3?????? 2<3? ?刪除第三個節點后,繼續循環
i=3???content.childNodes.length=2????????? 3<2? 不成立,所以不繼續。
這也就是為什么一次刪除不了所以節點。
可以把上面的代碼修改下:
2014-11-14
如果用while循環的話,可以這么些,如下:
2014-11-14
這個是運算時候的邏輯問題,你寫的循環是從上往下刪除,就會產生這樣一個問題,舉個例子,比如一排人有5個,分別對應1,2,3,4,5,那么這個時候1號有事臨時走了,那么重新排隊,是不是剩下的所有序號都要往前移一位,就是原來的2號是1號,3號是2號以此類推。你寫的這個循環中就有這個問題,就是刪除一次以后再次循環的時候順序就會重新排列,這個時候再刪除的時候就不是刪除以前的節點,而是他的下一個節點了,因此這種寫法,不是最好的,可以參考一下給出的代碼,或者嘗試一下用while語句去寫