var x=document.getElementsByTagName("ul")[0] 得到数组的第一个元素,这里的ul只有一个,不像联系里面是两个div,为什么获取的x还是一个集合,一个ul下所有li的集合?毕竟var x=document.getElementsByTagName("ul")[0]就是得到第一个li啊?
我觉得是因为你如果不加[0],此时表示的是一个“数组”,虽然这个“数组”可能只有一个元素,但是还是“数组”啊!数组是没有childNodes这个属性的。只有你加上[0],才会代表这是一个节点,节点自然可以有childNodes属性~
有人已经解释了,[0]应该是body中第一次出现的标签。例如("div")[0]就是取的第一次出现的div标签,而body中可能有很多的div 标签。
获取ul下的子节点,加0表示这个数组中的的一个元素,不是代表整个数组,所以才能获取子节点,拙见。
var x=document.getElementsByTagName("ul")得到的事document下的所有的ul,而var x=document.getElementsByTagName("ul")[0]是至获取到的第一个ul,而并不是第一个li