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

怎样理解firstchild,lastchild

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

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

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

</head>


<body>

<ul id="ul"><li></li><li>bana</li><li>ora</li></ul>

<script src="myJS.js"></script>

<script>

var oUl=document.getElementById("ul");

var x=oUl.childNodes;

alert(x[0].firstChild);    //结果为null;    但是使用childNode[0],出来为undefine

alert("ul中li[2]节点类型:"+x[2].nodeType);

</script>

</body>

</html>

1为什末elementNode.childNodes[0]与firstChild结果不同?

2firstChild 属性返回‘childNodes’数组的第一个子节点。

是指childNodes’数组中某一个元素节点的子节点,还是?

3与elementNode.childNodes[elementNode.childNodes.length-1]是同样的效果。    怎摸理解

谢谢拉

提问者:cc_freestyle 2017-03-28 18:06

个回答

  • cc_freestyle
    2017-03-29 08:48:26

    null貌似是人为设置空,undefine是未定义,意料之外的空  。。。。

  • cc_freestyle
    2017-03-29 08:32:13

    谢谢。。。棒极了

  • qq_凌_G
    2017-03-28 22:08:56

    1:说实话null和undefined都是不存在,但具体有什么不一样和为什么不一样我不知道;

    2:firstChild属性返回的是'childNodes'数组的第一个子节点,等同于childNodes[0]————(但是为什么会存在第一个问题,真特么不讲道理···);

    3:巴拉巴拉···同样效果那个,意思就是lastChild是返回的'childNodes'数组的最后一个子节点,巴拉巴拉那段就意思是等同于childNodes[childNodes.length - 1],比如it长度是3,分别it[0],it[1],it[2], it.firstChild==it[0],it.lastChild==it[2],2就是那个3-1;