怎么點(diǎn)擊第一下沒(méi)有反應(yīng),然后再點(diǎn)擊一下刪除了3個(gè),然后再點(diǎn)擊依次刪除一個(gè)
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無(wú)標(biāo)題文檔</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é)點(diǎn)內(nèi)容</button>
2015-01-13
自己編就想不到這么多==
2014-12-24
唔,我也遇到這個(gè)問(wèn)題,看到結(jié)尾,我懂了,謝謝。
2014-12-08
有意思,子節(jié)點(diǎn)數(shù)組的長(zhǎng)度是動(dòng)態(tài)變化的,那看來(lái)DOM操作很耗內(nèi)存資源吧?
2014-12-04
這段代碼是個(gè)變值,沒(méi)循環(huán)一次,都會(huì)-1
2014-11-14
該任務(wù),要注意一些問(wèn)題
1. 瀏覽器兼容問(wèn)題。
content孩子節(jié)點(diǎn):
ie下是5個(gè)節(jié)點(diǎn),chrome等瀏覽器是11個(gè)節(jié)點(diǎn)(因?yàn)槌霈F(xiàn)了空白節(jié)點(diǎn),如忘記了可以看看9-11節(jié))。
2. 不管你使用正序還是倒序刪除節(jié)點(diǎn),要注意在刪除節(jié)點(diǎn)同時(shí),content孩子節(jié)點(diǎn)的個(gè)數(shù)和位置也在變化。所以最好刪除時(shí)正序總刪除第一個(gè),倒序總刪除最后一個(gè)。
3.? 可以使用for或while 循環(huán),使用for循環(huán)時(shí)注意。
不要把i<content.childNodes.length做為判斷條件,舉例說(shuō)明,IE下執(zhí)行,節(jié)點(diǎn)個(gè)數(shù)5個(gè),當(dāng)我點(diǎn)一次刪除按鈕。
注意:5個(gè)節(jié)點(diǎn)分別對(duì)應(yīng)下標(biāo)是從0開(kāi)始:??? 1[0]???????? 2[0]???????? 3[0]?????????? 4[0]????????? 5[0]?
i=0?????content.childNodes.length=5????? 0<5? 刪除第一個(gè)節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=1?????content.childNodes.length=4????? 1<4?? 刪除第二個(gè)節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=2?????content.childNodes.length=3?????? 2<3? ?刪除第三個(gè)節(jié)點(diǎn)后,繼續(xù)循環(huán)
i=3???content.childNodes.length=2????????? 3<2? 不成立,所以不繼續(xù)。
這也就是為什么一次刪除不了所以節(jié)點(diǎn)。
可以把上面的代碼修改下:
2014-11-14
如果用while循環(huán)的話,可以這么些,如下:
2014-11-14
這個(gè)是運(yùn)算時(shí)候的邏輯問(wèn)題,你寫(xiě)的循環(huán)是從上往下刪除,就會(huì)產(chǎn)生這樣一個(gè)問(wèn)題,舉個(gè)例子,比如一排人有5個(gè),分別對(duì)應(yīng)1,2,3,4,5,那么這個(gè)時(shí)候1號(hào)有事臨時(shí)走了,那么重新排隊(duì),是不是剩下的所有序號(hào)都要往前移一位,就是原來(lái)的2號(hào)是1號(hào),3號(hào)是2號(hào)以此類推。你寫(xiě)的這個(gè)循環(huán)中就有這個(gè)問(wèn)題,就是刪除一次以后再次循環(huán)的時(shí)候順序就會(huì)重新排列,這個(gè)時(shí)候再刪除的時(shí)候就不是刪除以前的節(jié)點(diǎn),而是他的下一個(gè)節(jié)點(diǎn)了,因此這種寫(xiě)法,不是最好的,可以參考一下給出的代碼,或者嘗試一下用while語(yǔ)句去寫(xiě)