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

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

正在回答

5 回答

對了,我剛試過,我建議你這樣可以一次刪除所有元素:

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次。


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

因為下標更新了.

用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.

也就是隔山打牛.

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

你應該把4改為content.childNodes.length,因為他實際上不止4個節點,在子節點中兩個標簽之間的空格或換行都被解析為一個子節點(文本節點)。比如:

<ul>

<li>慕課網</li>

</ul>

這一段代碼就有3個子節點了


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

你的運行結果是只有 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 其中包括了幾個空白節點

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

瀏覽器兼容問題,節點之間的空白符,在firefox、chrome、opera、safari瀏覽器是文本節點

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

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468829    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

求大神解答

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

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

幫助反饋 APP下載

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

公眾號

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