javascript document.getElementById ("устройство") не работает? - PullRequest
0 голосов
/ 27 декабря 2011

Почему alert(p1) показывает null?

http://pastebin.com/VAKwwEge

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="js/product.js"></script>
</head>
<body>
    Device:<select id="device" name="device" style="width:250px;"> </select>                      Line:<select id="line" name="line" style="width:250px;"> </select>
</body>
</html>
window.onload = load();
function load() {
    var p1 = document.getElementById("device");
    var l1 = document.getElementById("line");
    alert(p1);
    alert(l1);
}

Ответы [ 2 ]

2 голосов
/ 27 декабря 2011

Вам необходимо изменить эту строку:

window.onload = load();

Чтобы прочитать следующее:

window.onload = load;

Обратите внимание на разницу, первый пример будет вызывать the load(), и присвойте ее возвращаемое значение window.onload, что, конечно, будет undefined.

Во втором примере сама функция будет присвоена window.onload, что вам нужно, и будетalert [object HTMLSelectElement] (в любом случае в Firefox).

2 голосов
/ 27 декабря 2011

Измените свой код следующим образом:

function load() {
    var p1 = document.getElementById("device");
    var l1 = document.getElementById("line");
    alert(p1);
    alert(l1);
}
window.onload = load;

Назначение для onload должно быть ссылкой на функцию, а не на выполнение функции (без символов).

Несколько прощеиспользуя анонимную функцию, такую ​​как:

window.onload = function() {
    var p1 = document.getElementById("device");
    var l1 = document.getElementById("line");
    alert(p1);
    alert(l1);
}
...