2017-01-12 7 views
2

Я просто хочу, чтобы моя страница только, чтобы показать содержимое DIV, и отбросить все остальные элементы, так что я пытаюсь установить мое тело к этому DIV, но это просто не удалось:Как установить тело документа на div по Javascript?

Мой код:

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

Как указано в Error, вы не можете установить div или другой элемент в корпус.

HTML-код можно изменить внутри элемента body.

Установить 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'. – 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>

 Смежные вопросы

  • Нет связанных вопросов^_^