Я просто хочу, чтобы на моей странице отображалось только содержимое div, и отбрасывала все остальные элементы, поэтому я пытаюсь установить свое тело на этот 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
Sayakiss 12 Янв 2017 в 06:38

4 ответа

Лучший ответ

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

Вы можете изменить HTML внутри элемента body.

Установите innerHTML тела в outerHTML целевого элемента. Это заменит предыдущее содержимое тела новым содержимым.

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

<div id="b">
  div b
</div>
4
Tushar 12 Янв 2017 в 03:41

Замещать

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

С участием

document.body.innerHTML = document.querySelector('#b').innerHTML
2
squiroid 12 Янв 2017 в 03:40

Используйте jQuery: $ ('div'). not (': first'). remove ();

0
Harminder 12 Янв 2017 в 03:58
document.getElementsByTagName('body')[0].innerHTML = document.querySelector('#b').innerHTML;
<div id="a">
    div a
</div>

<div id="b">
    div b
</div>
3
warkentien2 12 Янв 2017 в 03:41