问答详情
源自:9-9 访问子节点的第一和最后项

求指教,错在哪了?

我的为什么会输出“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>


提问者:紫金道童 2017-01-28 23:18

个回答

  • 不知不觉后知后觉嗯
    2017-02-14 17:02:26
    已采纳

    因为获取到的第一个和最后一个节点都是空的文本节点,所以显示它的内容会是  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浏览器也行。


  • levi0913
    2017-01-29 19:18:08

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

  • qq_一根煙的純度_03336172
    2017-01-29 15:29:12

    123