課程
/前端開發
/JavaScript
/JavaScript進階篇
這是為什么呢
2018-08-28
源自:JavaScript進階篇 9-14
正在回答
對了,我剛試過,我建議你這樣可以一次刪除所有元素:
var?content?=?document.getElementById("content"); var?h1s=?content.childNodes; var?length?=?h1s.length; for(var?i?=?0;?i<length;?i++) { ????content.removeChild(h1s[0]); ?} ?這樣就可以一直移除第一個節點了。移除11次。
因為下標更新了.
用b代表空白節點,那么ul之間的節點序列應該是:
b html b php b javascript b jquery b java b
第一次刪除時,刪除0號節點b,剩余html b php b javascript b jquery b java b
第二次刪除時,刪除1號節點b,由于此時節點已經更新, html變成0號節點,刪除的還是html后面的節點b。與此同時,<li>標簽節點的值也在增加,html變成0號,php變成1號,javascript變成2號節點,以此類推.因此第一次刪除的是所有的空格。第二次刪除html javascript java第三次刪除js,第四次刪除jquery.
也就是隔山打牛.
你應該把4改為content.childNodes.length,因為他實際上不止4個節點,在子節點中兩個標簽之間的空格或換行都被解析為一個子節點(文本節點)。比如:
<ul>
<li>慕課網</li>
</ul>
這一段代碼就有3個子節點了
你的運行結果是只有 html 和php被刪了嗎 如果是的話 加一個判定條件應該就好了
for(var i=content.childNodes.length-1;i>=0;i--){
var x=content.childNodes;
?if(x[i].nodeType==1){
content.removeChild(x[i]);
}
}
因為content 的長度其實是 11 不是 4 其中包括了幾個空白節點
瀏覽器兼容問題,節點之間的空白符,在firefox、chrome、opera、safari瀏覽器是文本節點
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
1 回答求求大神解答
3 回答求大神解答?
1 回答大神求解答
2 回答求大神解答
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-09-13
對了,我剛試過,我建議你這樣可以一次刪除所有元素:
2018-09-13
因為下標更新了.
用b代表空白節點,那么ul之間的節點序列應該是:
b html b php b javascript b jquery b java b
第一次刪除時,刪除0號節點b,剩余html b php b javascript b jquery b java b
第二次刪除時,刪除1號節點b,由于此時節點已經更新, html變成0號節點,刪除的還是html后面的節點b。與此同時,<li>標簽節點的值也在增加,html變成0號,php變成1號,javascript變成2號節點,以此類推.因此第一次刪除的是所有的空格。第二次刪除html javascript java第三次刪除js,第四次刪除jquery.
也就是隔山打牛.
2018-09-09
你應該把4改為content.childNodes.length,因為他實際上不止4個節點,在子節點中兩個標簽之間的空格或換行都被解析為一個子節點(文本節點)。比如:
<ul>
<li>慕課網</li>
</ul>
這一段代碼就有3個子節點了
2018-09-09
你的運行結果是只有 html 和php被刪了嗎 如果是的話 加一個判定條件應該就好了
for(var i=content.childNodes.length-1;i>=0;i--){
var x=content.childNodes;
?if(x[i].nodeType==1){
content.removeChild(x[i]);
}
}
因為content 的長度其實是 11 不是 4 其中包括了幾個空白節點
2018-08-31
瀏覽器兼容問題,節點之間的空白符,在firefox、chrome、opera、safari瀏覽器是文本節點