第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

看有的同學(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)壓根沒遍歷到呀。

正在回答

5 回答

for(var i=0;i<content.childNodes.length;i++){

? ? ? if(content.childNodes[i].nodeType!=1){

? document.write("當(dāng)i為:"+i+"&nbsp;");

? document.write("長度為:"+content.childNodes.length+"<br>");

? ? ? ? ?continue;??

? ? ? }else{

? ? ? ? ?content.removeChild(content.childNodes[i]);?

document.write("當(dāng)i為:"+i+"&nbsp;");

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)留下了)

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

LouisDuan

實(shí)現(xiàn)了,不知道科學(xué)不 function clearText() { var content=document.getElementById("content"); // 在此完成該函數(shù) mylength=content.childNodes.length; for (var i=1; i<mylength; i++){ content.removeChild(content.childNodes[i]); }
2019-03-25 回復(fù) 有任何疑惑可以回復(fù)我~

可以判斷數(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;

? ? ? }


0 回復(fù) 有任何疑惑可以回復(fù)我~

實(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>


0 回復(fù) 有任何疑惑可以回復(fù)我~

你直接試試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ò)的。


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

DP_XL

題目要求的就是空白節(jié)點(diǎn)也一并刪除,答案的思維很明確了,因?yàn)閯h除一次length就會(huì)變一次,所以選擇逆序刪除,從最后一個(gè)一直刪除到第一個(gè),答案的思路不一定是唯一解,但確實(shí)是可讀性強(qiáng)、通用的編程思維,真正到職場上寫這種亂七八糟的代碼,接手項(xiàng)目的人看到都煩
2019-03-30 回復(fù) 有任何疑惑可以回復(fù)我~

i不會(huì)變,i始終是0? 只有content.childNodes.length長度會(huì)變

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕神0996557 提問者

。。。i不會(huì)變?循環(huán)里面最后一個(gè)是i++,循環(huán)每走一次這個(gè)就會(huì)執(zhí)行一次的啊。。怎么可能i一直是0
2019-03-14 回復(fù) 有任何疑惑可以回復(fù)我~
#2

陽火鍋 回復(fù) 慕神0996557 提問者

你把循環(huán)理解錯(cuò)了。。 for(var i=0; i< 4 ;i++) 循環(huán)格式是這樣沒錯(cuò)吧。。 我們拆分來理解: i=0 代表從0開始,0只是一個(gè)開始條件。。 i<4這個(gè)代表循環(huán)的一個(gè)結(jié)束條件。。 i=0他走完循環(huán)始終會(huì)保持一個(gè)初始值進(jìn)行++.. 意思就是當(dāng)長度等于3,i還是從0開始加,長度等于2,i還是從0開始加。。 懂不
2019-03-14 回復(fù) 有任何疑惑可以回復(fù)我~
#3

慕神0996557 提問者 回復(fù) 陽火鍋

不太懂,循環(huán)進(jìn)行一次之后i不變?yōu)榱薸+1嗎。
2019-03-14 回復(fù) 有任何疑惑可以回復(fù)我~
#4

陽火鍋 回復(fù) 慕神0996557 提問者

如果初始值i=0 循環(huán)一次i+1,i<4 那你告訴我i是不是加到3就退出循環(huán)了。。 好那么如果i<3。。 那么i還是從0開始加到2。。 反正不管長度是多少,i始終只會(huì)從0開始加。。因?yàn)槟阋婚_始設(shè)定的就是0。。i自身不做累加
2019-03-15 回復(fù) 有任何疑惑可以回復(fù)我~
#5

慕神0996557 提問者 回復(fù) 陽火鍋

大兄弟,很感謝你的回答。。不過我覺得你說的應(yīng)該是錯(cuò)的。for循環(huán)一單進(jìn)去之后,就只會(huì)開始進(jìn)行i=i+1,然后再判斷新的i是否滿足條件,那個(gè)初始值是0,只會(huì)用第一次,你的意思我明白,你說的是,里面那個(gè)判斷條件每次都變了,所以跟著循環(huán)也變了,又是從0開始加。我自己在谷歌控制臺(tái)試了下,這里發(fā)不了圖,看下面,直接log出i就看的出來
2019-03-15 回復(fù) 有任何疑惑可以回復(fù)我~
#6

DP_XL 回復(fù) 陽火鍋

你怕是對(duì)for循環(huán)本身就有什么誤解吧?i=0只會(huì)執(zhí)行一次,而且是在for循環(huán)開始的時(shí)候執(zhí)行,然后進(jìn)行判斷,如果判斷成功就執(zhí)行循環(huán)代碼,然后i++,然后再執(zhí)行判斷,我雖然不是很懂JS,但是在c,c++,java里面都是這樣,我并不覺得js會(huì)獨(dú)特對(duì)一模一樣的寫法有不同的解釋
2019-03-30 回復(fù) 有任何疑惑可以回復(fù)我~
#7

神志不清H

i會(huì)變的吧,每刪除一個(gè)節(jié)點(diǎn)length都會(huì)-1,i會(huì)+1吧我認(rèn)為
2019-04-03 回復(fù) 有任何疑惑可以回復(fù)我~
查看4條回復(fù)

舉報(bào)

0/150
提交
取消
JavaScript進(jìn)階篇
  • 參與學(xué)習(xí)       468786    人
  • 解答問題       22562    個(gè)

本課程從如何插入JS代碼開始,帶您進(jìn)入網(wǎng)頁動(dòng)態(tài)交互世界

進(jìn)入課程

看有的同學(xué)是正序循環(huán)的解法,求大佬解答

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)