Uncaught TypeError: невозможно прочитать свойство getElementsByTagName со значением null

Я пытаюсь выбрать элементы с помощью .getElementsByTagName().

var tags = document.body.getElementsByTagName("*");

Текущая попытка с использованием уроков, извлеченных из существующего ответа -т.е./7410966#7410966

Но моя попытка не удалась, и у меня есть эта ошибка:

Uncaught TypeError: Cannot read property 'getElementsByTagName' of null

Почему выдает эту ошибку и как ее исправить?


person 5ervant - techintel.github.io    schedule 24.04.2014    source источник
comment
Что вам дает console.log(document.body)?   -  person Salman A    schedule 24.04.2014


Ответы (2)


Переместите <script> из элемента <head> в элемент <body>.



document.body не получит назначенное ему значение, пока не будет создан элемент body.

Поскольку вы пытаетесь получить все элементы в <body>, вам нужно оказаться в конце элемента body. Или поместите его в функцию и вызовите из события, которое срабатывает после создания тела (например, событие window load). Чтобы узнать больше об этой попытке, https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event.

person Quentin    schedule 24.04.2014

Примеры функций:

Пример с обоими методами:

function init() {
  alert("hello javascript");
};

window.addEventListener("load",init,false);

$(document).ready(function () {
  alert("hello jQuery");
});

http://jsfiddle.net/Ln5zu4Lt/

Будьте осторожны, приведенный выше пример JavaScript ожидает загрузки страницы (изображений, фреймов и т. д.). Это занимает больше времени, чем готов jQuery.

person mrroot5    schedule 24.11.2014