亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求解釋為啥刪不掉所有節點?

<!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(var i=0;i<content.length;i++){

? ? ? var x=content.removeChild(content.childNodes[i])

? }

??

}

</script>


<button onclick="clearText()">清除節點內容</button>


</body>

</html>


正在回答

7 回答

i的條件寫錯了,應該是content的所有子節點長度。另外還要注意非IE瀏覽器會把空白當成節點,還有,每次刪除節點,整個數組會發生變化,原來索引1的值會變成索引0,而i經過循環變成了1,索引0就刪不掉了,這個代碼會造成隔行刪的情況,需要想想如何修改。

3 回復 有任何疑惑可以回復我~

第一個回答的為什么要嘲諷別人啊。

而且content.childNodes[i]這個沒有問題吧,遍歷的是content下的子節點啊。

有問題的是i的取值,應該是i<content.childNodes.length。取對了之后是可以刪除的,但是不能一次刪去,可以想想為什么再去嘗試,加油~

2 回復 有任何疑惑可以回復我~
#1

風起臨冬

喜歡嘲諷新手的往往只是比新手多學了一點的新手,經過一整段坎坷學習過程的高手反而會理解剛入門的小白的。
2018-08-03 回復 有任何疑惑可以回復我~

應該是由于刪除了子代節點之后,集合變了的關系,這樣寫可以一次刪除

<!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");

? // 在此完成該函數

? var children=content.childNodes;

? var length=children.length;

? while(children!=null){

? ? ? var x=content.removeChild(children[0]);

? ? ? x=null;

? }

??

?/*?

?這個不能一次完成刪除,應該是因為children被刪除

?之后出現改變的原因

?for(var i=0;i<length;i++){

? ? ?var x= content.removeChild(children[i]);

? ? ?x=null;

? }*/

??

}

</script>


<button onclick="clearText()">清除節點內容</button>




</body>

</html>


0 回復 有任何疑惑可以回復我~

id獲得的是一個值? 不是一個數組? 你對一個數組進行遍歷? ?牛逼

1 回復 有任何疑惑可以回復我~
#1

風起臨冬

你的前后邏輯有問題啊,他并沒有對數組遍歷,content.childNodes[i]是數組?他只是i的條件寫錯了,應該是content的所有子節點長度。另外還要注意非IE瀏覽器會把空白當成節點,還有,每次刪除節點,整個數組會發生變化,這個代碼會造成隔行刪的情況,需要想想如何修改。
2018-08-03 回復 有任何疑惑可以回復我~

for(var i=0;i<content.childNodes.length;i++){? };? for循環里面遍歷的數組沒取對


1 回復 有任何疑惑可以回復我~

var x=content.removeChild(content.childNodes[i])? 是不是少了一個“;”

0 回復 有任何疑惑可以回復我~

仔細把理論看一下再寫代碼,真的。。這樣對你有好處

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

求解釋為啥刪不掉所有節點?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號