2012-09-25 58 views
0

我有一個網站,我想採取的總是有相同的部分與我想顯示的所有內容相同的ID。我不是很驚人的JavaScript,我想知道如何刪除一切,但一個特定的部分。Javascript部分

最好的方法是做一個循環遍歷DOM中的所有元素,並刪除所有內容,但是我要保留的id部分?如果我採用這種方法,我該如何避免刪除該部分內的所有元素?

回答

1

也許是另一種方式來更有效地做到這一點是:

document.body.innerHTML = document.getElementById('saveContentId').innerHTML 
+0

哈。謝謝你,先生。 –

+0

根據節的大小,這可能不會比通常的DOM方法更高效。也不要忘記'innerHTML'像刪除的聽衆 – Bergi

+0

的缺點,它可能可以更有效地完成。對我而言,儘管這一行代碼確實有奇效。 –

0

您只能保存所需的元素並刪除所有其他元素。此外,我建議使用jQuery

+0

-1推薦的jQuery沒有理由 – Bergi

+0

我jQuery是的最簡單的方法來執行JavaScript。 – vlio20

1

刪除一個節點包含其所有的孩子,所以你不會需要循環的所有元素在整個文檔中。我看到兩種可能性:

  • 得到部分,刪除當前父所有的兄弟姐妹,然後步行DOM樹,直到document.body,同時去除所有的兄弟姐妹。
  • 獲取該部分並將其從文檔中分離。然後清除document.body並重新連接有一節

第一個解決方案似乎更清潔我的,所以這裏的一些示例代碼:

function removeEverythingBut(el) { 
    while (el != document.body) { 
     var par = el.parentNode; 
     for (var i=par.childNodes.length-1; i>=0; i--) 
      if (par.childNodes[i] != el) 
        par.removeChild(par.childNodes[i]); 
     el = par; 
    } 
} 

// usage: 
removeEverythingBut(document.getElementById("my-section")); 
+0

雖然我會嘗試一下,讓我們看看它是否更好! –

+0

我的目的似乎沒有任何區別(採取基本的文章和刪除一些不必要的數據)。無論如何感謝您的意見! –