我的为什么会输出“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>
因为获取到的第一个和最后一个节点都是空的文本节点,所以显示它的内容会是 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浏览器也行。
document.write(y+z+"<br>")
123