为了账号安全,请及时绑定邮箱和手机立即绑定

为啥innerHTML不生效呢。

如题。。。。

正在回答

7 回答

这是我的代码与答案,楼主可以参考一下:

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>

<body>

<div id="con">

  <p>javascript</p>

  <div>jQuery</div>

  <h5>PHP</h5>

</div>

<script type="text/javascript">

  var x=document.getElementById("con");

  document.write(x.firstChild + "<br>");

  for (var i=0;i<x.childNodes.length;i++){

      document.write("&nbsp;&nbsp;我是第" + i + "个:" + x.childNodes[i] + "<br>");

  }

  document.write(x.lastChild + "<br>");

document.write("首节点:" + x.firstChild.innerHTML+"<br>");

  document.write("末节点:" + x.lastChild.nodeName+"<br>");

</script>

</body>

</html>


答案:

javascript

jQuery

PHP

[object Text]
  我是第0个:[object Text]
  我是第1个:[object HTMLParagraphElement]
  我是第2个:[object Text]
  我是第3个:[object HTMLDivElement]
  我是第4个:[object Text]
  我是第5个:[object HTMLHeadingElement]
  我是第6个:[object Text]
[object Text]
首节点:undefined
末节点:#text

楼主出现的那种情况可能是浏览器兼容性的问题,楼主可以换个浏览器试试!

0 回复 有任何疑惑可以回复我~

浏览器兼容问题,不是ie9的浏览器会认为div标签后有个空节点,所以x.firstChild是个空节点没有任何内容

0 回复 有任何疑惑可以回复我~

上面的回答有问题,使用innerHTML也是可以的,代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
<div id="con"><p>javascript</p><div>jQuery</div><h5>PHP</h5></div>
<script type="text/javascript">
  var x=document.getElementById("con");
  document.write("div的第一个子节点为:"+x.firstChild.innerHTML+"<br>");
  document.write("div的最后一个节点为:"+x.lastChild.nodeName+"<br>");
</script>
</body>
</html>

执行结果为:

javascript

jQuery

PHP

div的第一个子节点为:javascript
div的最后一个节点为:H5

要让innerHTML执行出结果,需要把<body>...</body>代码中的空格都去掉,如果不去掉,执行结果为:

javascript

jQuery

PHP

div的第一个子节点为:javascript
div的最后一个节点为:H5

1 回复 有任何疑惑可以回复我~
#1

wlf1112

javascript jQuery PHP div的第一个子节点为:undefined div的最后一个节点为:#text
2015-12-02 回复 有任何疑惑可以回复我~

innerHTML的用法一般为document.getElementById("id").innerHTML;

0 回复 有任何疑惑可以回复我~

兼容性的问题 不换行就好了 不信你输出nodeName看看firstChild这个node是不是P嘛

0 回复 有任何疑惑可以回复我~

 百度了一下 貌似 节点没有innerHTML的属性。。

0 回复 有任何疑惑可以回复我~

浏览器版本问题,你把标签不换行试试看

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468190    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

为啥innerHTML不生效呢。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信