+ -
当前位置:首页 → 问答吧 → 若要获取HTML中的节点,是不是要把JavaScript放在该节点之后

若要获取HTML中的节点,是不是要把JavaScript放在该节点之后

时间:2010-05-21

来源:互联网

将脚本放在节点之后,正常
<body> <h1 title="1 level title"></h1> <h1 title="1 level title No.2"></h1> <script type="text/javascript"> var whichPic = document.getElementsByTagName("h1")[0]; alert(whichPic); var text = whichPic.getAttribute("title"); alert(text) </script> </body>
 提示:您可以先修改部分代码再运行
之前,不能获取节点:
<body> <script type="text/javascript"> var whichPic = document.getElementsByTagName("h1")[0]; alert(whichPic); var text = whichPic.getAttribute("title"); alert(text) </script> <h1 title="1 level title"></h1> <h1 title="1 level title No.2"></h1> </body>
 提示:您可以先修改部分代码再运行
[ 本帖最后由 trickman 于 2010-5-22 13:39 编辑 ]

作者: trickman   发布时间: 2010-05-21

脚本要获取节点的时候要保证dom文档加载完成。

作者: hoz2004   发布时间: 2010-05-22

是这样的,还没有截入内容怎么能得到属性呢

作者: yypz   发布时间: 2010-05-22

那就是说,在<head>标签里用link链接.js文件并不是妥善的做法,必须在HTML文档的底部链接.js文件比较好,对吗?

作者: trickman   发布时间: 2010-05-22

未必,你可以这样做:
同样还是把javascript代码放在HTML上部,
把有关DOM的代码放到一个函数里,然后把window.onload赋值为这个函数就行了。
<html> <head><title>测试</title> <script type="text/javascript"> function doSth(){ document.getElementById('theDiv').innerHTML = '<p style="color:#f00">函数运行成功!</p>'; } window.onload = doSth </script> </head> <body> 这是在DIV上面 <div id="theDiv">这是在DIV里面</div> 这是在DIV下面 </body> </html>
 提示:您可以先修改部分代码再运行
[ 本帖最后由 alsove 于 2010-5-23 20:28 编辑 ]

作者: alsove   发布时间: 2010-05-23