JS只有childrenNodes吗,没有childrenNOde?那想访问子元素怎么写

JavaScript014

JS只有childrenNodes吗,没有childrenNOde?那想访问子元素怎么写,第1张

在获取子元素之前js肯定不知道总共有多少个子元素,所以子元素都是以元素集合的形式出现的(即使子元素只有一个甚至没有),然后再从中枚举出每个子元素,比如:

elem.childNodes[0] //这是第一个子元素

elem.childNodes[1] //这是第二个子元素,依此类推

此外,还可以使用children,它也是个集合,用法一样:

elem.children[0] //这是第一个子元素

elem.children[1] //这是第二个子元素,依此类推

childNodes和children的区别在于,前者会把文本元素(含回车、空格等)也作为子元素,后这则只把标签元素作为子元素

此外,如果知道子元素的ID、Name、Class或者标签名,也可以直接获取子元素,比如:

elem.getElementById("abc") //获取id为abc的子元素(ID具有唯一性,所以它可以直接获取)

elem.getElementsByName("xxx")[0] //获取name属性为xxx的第一个子元素(name属性允许重名,所以它是个集合)

elem.getElementsByClassName("hehe")[0] //获取class为hehe的第一个子元素(class属性也是可以重名的)

elem.getElementsByTagName("a")[0] //获取第一个a标签子元素

1、新建一个html文件,命名为test.html,用于讲解JS如何获取指定DIV下的子元素LI的值。

2、在test.html文件内,在div标签内,使用ul、li标签创建两个项目列表,li元素的值分别为项目一、项目二。

3、在test.html文件内,设置div标签的id为mydiv,主要用于下面通过该id获得mydiv对象。

4、在test.html文件内,使用button标签创建一个按钮,按钮名称为“获取LI的值”。

5、在test.html文件中,给button按钮绑定onclick点击事件,当按钮被点击时,执行getli

6、通过获得li对象,使用each()方法遍历每一个li对象,通过text()方法获得li的值,使用push()方法将获得li值存进数组中。最后,使用alert()方法将所有li值输出。

7、在浏览器打开test.html文件,点击按钮,查看结果。