Javascript document.getElementById在函数中失败
今晚使用document.getElementById时,我遇到了奇怪的行为。在Firefox3和Safari中重复 基本上,它在示例1中找到id为“divid”的div。然而,在示例2中,它总是返回null。这是怎么回事Javascript document.getElementById在函数中失败,javascript,Javascript,今晚使用document.getElementById时,我遇到了奇怪的行为。在Firefox3和Safari中重复 基本上,它在示例1中找到id为“divid”的div。然而,在示例2中,它总是返回null。这是怎么回事 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http:/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<script type="text/javascript">
addelement = function(){
alert( document.getElementById('divid') );
}
//Example1
window.onload = function(){ alert( document.getElementById('divid') ); }
//Example2
window.onload = addelement();
</script>
<body>
<div id="divid" class="divclass">
<p>Test</p>
</div>
<body>
</html>
addelement=函数(){
警报(document.getElementById('divid');
}
//例1
window.onload=function(){alert(document.getElementById('divid');}
//例2
window.onload=addelement();
试验
写这行时:
window.onload = addelement();
…您实际上没有将添加元素分配给window.onload。您正在执行添加元素,然后将结果分配给window.onload
将行更改为:
window.onload = addelement;
cbp已经给出了正确的答案:函数“addelement()”在javascript中也是一个对象“addelement” 当你说
x = addelement() ;
x = addelement ;
将addelement()返回的值(在本例中,返回值为null)赋给变量x
当你说
x = addelement() ;
x = addelement ;
将函数addelement()指定给变量x
在将addelement分配给onload事件时,您希望在事件发生时调用该函数。所以你不用括号写
window.onload = addelement ;
(只是澄清一下,因为美国海关与边境保护局已经给出了正确答案,但原因可能并不明显。)