js中使用getElementsByTagName,getElementsById等获取html元素失败,没有获取到,很有可能是页面还没有渲染完就去获取了
在使用getElementsById获取html,出现获取到时空,很大的可能是页面还没有渲染完毕. 如下几种情况会发生这种获取不到的情况:
直接写在<head>标签中,因为这是最开始执行,html还没有渲染 所以如果尝试 var e = getElementsById("p");
那么返回的e是空.
一个重点就是要在你要获取的那个html元素渲染完毕后才能去使用 getElementsById; 2种方法:
方法1:
如下例子:(要获取p元素,那么代码写在<p>后面就可以
<p>你好,测试一下啊</p>
<script> var e = getElementsById("p");//在这里可以成功获取</script>
方法2:
<head>
function test(){
var e = getElementById("p");
console.log(e);//可以成功打印出来
}</head>
<body onload="test()">
<p>测试测试</p>
</body>
同理getElementsByTagName和getElementsClassName和getElementsByName几个的用法也遵循以上的规则.
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: document.body的一些用法以及js中的常见问题
- 下一篇: 动态配置模块实现模块拖拽效果