我正在使用我的php调用这样的js函数:
<?php
$chk=1;
if($chk==1)
{
echo '<script>testing();</script>';
}
?>
和我的js看起来像:
function testing()
{
document.getElementById("mainbody").innerHTML="This is my first JavaScript!";
}
js是外部js文件。
我的HTML看起来像:
<html>
<head>
<script src="qotw.js"></script>
</head>
<body>
<div id="mainbody"></div>
</body>
</html>
但这不起作用。我在这做错了什么? 如果你知道,请告诉我。
最佳Zeeshan
答案 0 :(得分:7)
在目标div存在之前运行脚本,因此document.getElementById
调用返回false值而不是HTMLElementNode。
您需要移动script
元素,使其位于div
之后,或者将函数分配给事件处理程序(例如onload
),而不是直接调用它。 / p>
这与PHP的使用无关。
顺便提一下,您的HTML为invalid并触发quirks mode。
答案 1 :(得分:1)
确保在代码中没有在'mainbody'上面调用'testing',因为代码将在加载期间的某个点运行,此时对象不存在。
答案 2 :(得分:1)
尝试按顺序测试以下内容:
第一:你的脚本正在被调用
<script type="text/javascript">alert("hello");testing();</script>
第二:正在调用该函数
function testing() {
alert('inside testing');
}
第三:如上所述,
if (document.getElementById("mainbody") == null) alert('yep, its null');
然后告诉我们结果