首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >x.lastChild.nodeValue

x.lastChild.nodeValue
EN

Stack Overflow用户
提问于 2012-06-27 17:13:07
回答 1查看 425关注 0票数 0
代码语言:javascript
复制
<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());提前感谢...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-27 17:23:12

您的代码中有几个错误:

在加载完成之前,您可以执行JavaScript。因此,当您要查询这些<p>时,它们并不存在。

简单的解决方案是将<script>标记移动到页面的底部。

  • 命令是document.getElementsByTagName() (而不是document.getElementById() -注意添加的"s"),并返回一个数组。

所以这里正确的语法应该是这样的:

代码语言:javascript
复制
x = document.getElementsByTagName("p");
x = x[ x.length - 1 ];

  • 为什么要使用document.write()?这会在script标签的确切位置插入文本。

因此,为了进行调试,最好使用console.log()alert()。在一个高效的环境中,你会有一个结果--例如<div>

所以最后,你的代码可能看起来像这样才能工作:

代码语言:javascript
复制
<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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11222930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档