这段代码:
<!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>