Javascript:Can't使用getElementById获取元素
Javascript: Can't get element using getElementById
好的。我需要新鲜的眼睛,因为我还在这个问题上一个小时!
以下是我的简单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的方式。
您的代码在加载DOM之前运行得太早,因此document.getElementById()
还没有在文档中找到元素。
您可以将脚本标记向下移动到</body>
标记的正前方,也可以等待DOM加载后再使用window-onload事件或DOMReady事件运行代码。
这里有两个错误。首先,您需要将SCRIPT标记放在元素之后。其次,它不是.html,而是.innerHTML
<!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>
您可以使用类似的东西
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
document.onload= function(){
var ssio = document.getElementById('ssio');
ssio.html = "it finally works!";
}
</script>
</head>
<body>
<div id="ssio"></div>
- 在指令控制器中使用$attrs时出现问题
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使用动画实现纸张推车
- 如何在Angular2中使用jQuery插件
- 使用Express捕获参数
- 使用clickToggle并在单击另一个元素时关闭元素
- 如何使用jQuery选择下拉列表的值
- 可以前端maven插件使用节点,npm已经安装
- 使用javascript将动态表从一个html页面打印到另一个html页
- 当我可以直接引用 JavaScript 中的 DOM id 时,为什么要使用 document.getElementBy
- 现在是否需要使用getElementBy*方法?