看有的同學(xué)是正序循環(huán)的解法,求大佬解答
for(var i=0;i<content.childNodes.length;i++){
????? if(content.childNodes[i].nodeType!=1){??
???????? continue;?
????? }else{
???????? content.removeChild(content.childNodes[i]);???
????? }
????????
????? }
這個(gè)試了下結(jié)果,沒問題,不過有個(gè)地方想不明白,這個(gè)i<content.childNodes.length,這個(gè)?content.childNodes.length不是動(dòng)態(tài)變化的嗎,因?yàn)槊看蝿h除一個(gè)節(jié)點(diǎn),這個(gè)content.childNodes.length就變小了,那豈不是沒法遍歷完所有的節(jié)點(diǎn)?比如有四個(gè)節(jié)點(diǎn),i=0的時(shí)候,content.childNodes.length是4, i=1的時(shí)候,content.childNodes.length就是3了, i=2的時(shí)候,content.childNodes.length就是2了,循環(huán)就沒了,最后的節(jié)點(diǎn)壓根沒遍歷到呀。
2019-03-18
for(var i=0;i<content.childNodes.length;i++){
? ? ? if(content.childNodes[i].nodeType!=1){
? document.write("當(dāng)i為:"+i+" ");
? document.write("長度為:"+content.childNodes.length+"<br>");
? ? ? ? ?continue;??
? ? ? }else{
? ? ? ? ?content.removeChild(content.childNodes[i]);?
document.write("當(dāng)i為:"+i+" ");
document.write("長度為:"+content.childNodes.length+"<br>");?
? ? ? }
通過這樣輸出,你就可以看出長度是遞減的,i是遞增的,存在空白節(jié)點(diǎn),刪除一個(gè)元素節(jié)點(diǎn),空白節(jié)點(diǎn)就會(huì)頂上位置。這里最后會(huì)留下空白節(jié)點(diǎn)(本身這里的if判斷就把空白節(jié)點(diǎn)留下了)
2019-03-27
可以判斷數(shù)組長度,重置i=-1,確保再次循環(huán)i=0, 進(jìn)而刪除所有節(jié)點(diǎn);
for(var i=0;i<childNodes.length;i++){
? ? ? content.removeChild(childNodes[i]);
? ? ? x=null;
? ? ? if(childNodes.length>0){
? ? ? ? ?// alert(i+"長度"+childNodes.length);
? ? ? ? ? i=-1;
? ? ? }
2019-03-25
實(shí)現(xiàn)了結(jié)果,不知道科學(xué)不科學(xué)
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標(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");
? // 在此完成該函數(shù)
? mylength=content.childNodes.length;
? for (var i=1; i<mylength; i++){
? ? content.removeChild(content.childNodes[i]);??
? }
??
}
</script>
<button onclick="clearText()">清除節(jié)點(diǎn)內(nèi)容</button>
</body>
</html>
2019-03-15
你直接試試log就能看出來,如果沒有前面的if條件,實(shí)際上是根本遍歷不了所有節(jié)點(diǎn)的。如果我猜的沒錯(cuò)的話,之所以能遍歷,并不是因?yàn)閕一直是0,而是有空節(jié)點(diǎn),那個(gè)length會(huì)隔一次減1,不會(huì)一直減1.并且如果我這個(gè)題目要求的刪除所有的子節(jié)點(diǎn),包括空白節(jié)點(diǎn),那這個(gè)答案就是錯(cuò)的。
2019-03-14
i不會(huì)變,i始終是0? 只有content.childNodes.length長度會(huì)變