Не удается вызвать метод getElementsByTagName со значением null

Я пробую базовый Javascript с выбором элементов и тегов, но это вызывает у меня проблемы. В частности, я получаю эту ошибку в инструментах разработчика, используя chrome или firefox:

Uncaught TypeError: невозможно вызвать метод getElementsByTagName со значением null

Странно то, что когда я набираю команду javascript в консоли браузера, она работает без проблем. (Выбор тегов p внутри div-оболочки)

Это мой html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test</title>
  <link rel="stylesheet" href="default.css" />
  <script type="text/javascript" src="selection.js"></script>
</head>
<body>
    <div id="wrapper">
        <p>Hello, this is a paragraph</p>
        <p>Another one!</p>
        <p>This is yet another paragraph</p>
    </div>
</body>
</html>

Тогда мой Javascript:

window.onload = initP();

function initP() {
    var para = document.getElementById('wrapper').getElementsByTagName('p');
}

person Mike R    schedule 17.12.2013    source источник


Ответы (2)


Попробуйте с:

window.onload = initP;

вместо

window.onload = initP();

поскольку вы вызываете функцию, а не назначаете ее.

person Rahul Tripathi    schedule 17.12.2013

Вы вызываете функцию, а не назначаете ее.

window.onload = initP();

должно быть

window.onload = initP;

Недостатком того, как вы прикрепляете события, является то, что если что-либо еще до этого зарегистрировано в событии onload, вы переопределите его. Лучше использовать element.addEventListener.

person epascarello    schedule 17.12.2013