2017-01-12 35 views
2

我只是希望我的頁面只顯示一個div的內容,並放棄所有其他的元素,所以我嘗試我的身體設置該div,但它只是失敗:如何通過Javascript將文檔正文設置爲div?

我的代碼:

document.body = document.querySelector('#b')
<div id="a"> 
 
    div a 
 
</div> 
 

 
<div id="b"> 
 
    div b 
 
</div>

而且結果:

{ 
    "message": "Uncaught HierarchyRequestError: Failed to set the 'body' property on 'Document': The new body element is of type 'DIV'. It must be either a 'BODY' or 'FRAMESET' element.", 
    "filename": "http://stacksnippets.net/js", 
    "lineno": 19, 
    "colno": 23 
} 

那麼,如何文檔主體設置爲一個div?

回答

3

正如錯誤中所述,您不能將div或其他元素設置爲正文。

您可以更改body元素中的HTML。

將主體的innerHTML設置爲目標元素的outerHTML。這將用新內容取代以前的正文內容。

document.body.innerHTML = document.querySelector('#b').outerHTML;
<div id="a"> 
 
    div a 
 
</div> 
 

 
<div id="b"> 
 
    div b 
 
</div>

+0

你讓我只有11秒:P :) – squiroid

+0

我發現綁定到該div的事件監聽器消失了。有什麼辦法可以解決這個問題嗎? – Sayakiss

+0

@Sayakiss在這種情況下,你可以在'body'本身上綁定事件,或者在用'div'替換'body'的內容後綁定事件。 – Tushar

2

更換

document.body = document.querySelector('#b') 

隨着

document.body.innerHTML = document.querySelector('#b').innerHTML 
+0

我發現綁定到該div的事件偵聽器消失了。有什麼辦法可以解決這個問題嗎? – Sayakiss

3

document.getElementsByTagName('body')[0].innerHTML = document.querySelector('#b').innerHTML;
<div id="a"> 
 
    div a 
 
</div> 
 

 
<div id="b"> 
 
    div b 
 
</div>

0

使用jQuery:$('div')。not(':first')。remove();

相關問題