js原生后代选择器_JavaScript DOM查询,原生js实现元素子节点的获取

每个网页都是一个dom树,网页中所有的内容都是这个树上的一个节点。JavaScript的工作就是操作这些节点,对节点进行查增删改操作,或是给节点绑定事件。

网页

dom树

要操作dom节点,首先要获取到dom节点。这里我介绍几个原生js获取元素子节点的方法:

一、通过标签的属性值获取后代节点

以getElementBy开头的方法,可以根据具体的属性获取元素的后代节点。这些方法不只会获取子节点,他也会获取到所有符合条件的后代节点。

方法

依据属性

兼容性

其他

getElementById

id

兼容性好,推荐使用

如果存在多个id相同的元素,只会返回第一个

getElementsByTagName

标签名

不兼容ie8及以下版本

返回所有符合条件的元素的集合

getElementsByName

name

不兼容ie8及以下版本

返回所有符合条件的元素的集合

getElementsByClassName

class

不兼容ie8及以下版本

返回所有符合条件的元素的集合

以getElementById为例,尽管有两个id为’Jan‘的元素,但是只会获取到第一个:

1

2

3

varj=document.getElementById('Jan');

console.log(j);

需要注意的是,在同一个文件中出现重复id是不符合规范的,应当尽量避免这样使用。

如果将上面代码中的getElementById('Jan')换成 getElementsByTagName('p')或者是getElementsByClassName('test')将会获取到符合条件的结果集。

二、child属性

每个dom元素都是一个对象,在dom元素对象中有四个专门用于获取子元素的属性:

属性名

作用

其他

childNodes

获取所有子节点

不推荐使用,如果有空格,会作为文本节点获取到

child

获取所有子节点

推荐使用

firstChild

获取首个子节点

推荐使用

lastChild

获取最后一个子节点

推荐使用

这四个属性都不存在兼容性问题,除了childNodes之外都是比较好用的。

1. childNodes

childNodes属性可以获取元素的所有子节点,并封装到一个数组中,可以通过下标来获取某个子元素:

1

3

5

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值