这段代码:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>节点属性</title> <script type="text/javascript"> var mychar = document.getElementsByTagName("p"); var val; for (var i = 0; i < mychar.length; i++) { val = mychar[i].nodeName; document.write("p标签的节点名称是:" + val + "<br />"); } </script> </head> <body> <p id="p1">I love JavaScript!</p> </body> </html>
为什么浏览器只显示p段落的内容,JS里面需要输出的内容怎么不显示?
交换一下代码顺序:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>节点属性</title>
</head>
<body>
<p id="p1">I love JavaScript!</p>
<script type="text/javascript">
var mychar = document.getElementsByTagName("p");
var val;
for (var i = 0; i < mychar.length; i++) {
val = mychar[i].nodeName;
document.write("p标签的节点名称是:" + val + "<br />");
}
</script>
</body>
</html>
你一开始那样,js运行得时候还没有p标签(后面加载),所以把JS放在后面就可以了。
除了调用事件,其他都要注意JS代码所处的位置问题
把 js 代码放在 p 标签下面,
或者写个方法把js代码包裹起来
<script type="text/javascript"> window.onload = function() { var mychar = document.getElementsByTagName("p"); var val; for (var i = 0; i < mychar.length; i++) { val = mychar[i].nodeName; document.write("p标签的节点名称是:" + val + "<br />"); } } </script>