好的。我需要新的眼光,因为我还在这个问题上待了一个小时!
这是我的简单 HTML 代码 (testssio.html),其中包含 javascript 脚本:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var ssio = document.getElementById('ssio');
ssio.html = "it finally works!";
</script>
</head>
<body>
<div id="ssio"></div>
</body>
</html>
但这不起作用!使用调试器,我得到:
Uncaught TypeError: Cannot set property 'html' of null /testssio/:6
有人明白吗?我知道这不是寻找调试帮助的正确位置,但如果我没有得到它,我会发疯的!所以请问有什么帮助吗?
提前致谢。
其原因是头部中的脚本在页面呈现之前加载。这意味着您的内容尚未呈现,因此不属于document
.
如果您想看到这项工作,请尝试将脚本移到元素渲染下方,如下所示:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="ssio"></div>
<script type="text/javascript">
var ssio = document.getElementById('ssio');
ssio.innerHTML = "it finally works!";
</script>
</body>
</html>
一种更标准化的方法是使用事件。很多人用jQuery但用普通的js就可以完成。这意味着像这样更改您的脚本:
<script type="text/javascript">
function WinLoad() {
var ssio = document.getElementById('ssio');
ssio.innerHTML = "It finally works!";
}
window.onload = WinLoad;
</script>
这样您仍然可以将其留在<head>
.
另外,使用.html
来自jQuery。它一般用作.html(content)
。如果你想使用纯 JavaScript 版本,请使用.innerHTML = content
.
我之所以多次提到 jQuery,是因为它是一个使用率很高的 API。这句话来自他们的网站:
jQuery 是一个快速而简洁的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互,以实现快速 Web 开发。 jQuery 旨在改变您编写 JavaScript 的方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)