為什么變量在FOR循環(huán)外面是一個(gè)一個(gè)刪除的,到了FOR循環(huá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");//獲取div
? ?var date=content.childNodes[i];//變量date為div中第i+1個(gè)子節(jié)點(diǎn)
? ?for(i=0;i<content.childNodes.length;i++)? //for循環(huán),i小于div中子節(jié)點(diǎn)的長(zhǎng)度
? ?{
? ? ?
? ? ? ? ? content.removeChild(date)? ?//刪除diiv中第i+1個(gè)子節(jié)點(diǎn)
? ?}
?
??
}
</script>
<button onclick="clearText()">清除節(jié)點(diǎn)內(nèi)容</button>
</body>
</html>
2019-05-16
首先,你貼出來(lái)的整段代碼里有一個(gè)錯(cuò),使用的i沒(méi)有定義,我不知道你是怎么運(yùn)行成功的。
然后,如果你說(shuō)的變量date放在代碼外面是如下:
var i=0;
var date=content.childNodes[i];
? ?for(i=0;i<content.childNodes.length;i++)
? ?{
? ? ? ? content.removeChild(date) ;
? ?}
那么一行一行的刪除則是因?yàn)閐ate在外面定義時(shí)已經(jīng)固定為content的第一個(gè)子節(jié)點(diǎn)了,所以你每次只能刪一個(gè)。
最后,將變量date放在代碼循環(huán)里面是如下:
? ?for(var i=0;i<content.childNodes.length;i++)
? ?{
? ? ? ?var date=content.childNodes[i];
? ? ? ? content.removeChild(date) ;
? ?}
那么兩個(gè)兩個(gè)的刪除則是因?yàn)樵樞驗(yàn)?html? php? javascript? jquery? java,i=0時(shí),刪了html,然后順序變?yōu)閜hp? javascript? jquery? java,故i=0時(shí),則會(huì)刪除Javascript,依次推下去。