<html>
<head>
<script type="text/javascript" src="jQuery.js">
<script type="text/javascript">
x=document.getElementByTagName("p");
document.write(x.lastChild.nodeValue);
</script>
</head>
<body>
<p id="intro">Hello World 1!</p>
<p id="intro">Hello World 2!</p>
<p id="intro">Hello World 3!</p>
</body>
</html>为什么上面的代码不起作用。我想要展示Hello World 3!通过使用语句documetn.write(x.lastChild.nodeValue());提前感谢...
发布于 2012-06-27 17:23:12
您的代码中有几个错误:
在加载完成之前,您可以执行JavaScript。因此,当您要查询这些<p>时,它们并不存在。
简单的解决方案是将<script>标记移动到页面的底部。
document.getElementsByTagName() (而不是document.getElementById() -注意添加的"s"),并返回一个数组。所以这里正确的语法应该是这样的:
x = document.getElementsByTagName("p");
x = x[ x.length - 1 ];document.write()?这会在script标签的确切位置插入文本。因此,为了进行调试,最好使用console.log()或alert()。在一个高效的环境中,你会有一个结果--例如<div>。
所以最后,你的代码可能看起来像这样才能工作:
<html>
<head>
<script type="text/javascript" src="jQuery.js">
</head>
<body>
<p id="intro">Hello World 1!</p>
<p id="intro">Hello World 2!</p>
<p id="intro">Hello World 3!</p>
<hr>
<div id="result"></div>
<script type="text/javascript">
x=document.getElementsByTagName("p");
x = x[ x.length - 1 ];
document.getElementById( 'result' ).innerHTML = x.nodeValue;
</script>
</body>
</html>https://stackoverflow.com/questions/11222930
复制相似问题