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

求指教,错在哪了?

我的为什么会输出“undifined”?、?

<script type="text/javascript">

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

    var y = x.firstChild.innerHTML;

    var z = x.lastChild.innerHTML;

    document.write(y+"<br/>"+z);

</script>


正在回答

3 回答

因为获取到的第一个和最后一个节点都是空的文本节点,所以显示它的内容会是  undefined.

<div id="con">/*第一个文本节点*/
  <p>javascript</p>/*第二个文本节点*/
  <div>jQuery</div>/*第三个文本节点*/
  <h5>PHP</h5>/*第四个文本节点*/
 </div>

对于firefox、chrome、opera、safari浏览器来说,id为con的div下面总共有七个节点,四个文本节点再加上 p div h5三个元素节点,总共七个。

.firstChild 和.lastChild表示第一个和最后一个节点,从上面分析看出,它的第一个和最后一个节点都是文本节点,且内容为空,所以会显示成undefined.

想解决这个问题可以这么搞,代码写成一行:

<div id="con"><p>javascript</p><div>jQuery</div><h5>PHP</h5></div>

或者用ie浏览器也行。


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

document.write(y+z+"<br>")

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

123

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

紫金道童 提问者

水经验?
2017-01-29 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

求指教,错在哪了?

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