Js: document.getElement系列 与 node.querySelectAll对比总结

DOM中有两种常用查找元素的方式:

  • document.getElementsTagName() //参数可以为*
  • document.getElementById()
  • document.getElementsByClassName() -可以指定多个类名 空格隔开-
  • getElementsByName
  • node.querySelector()
  • node.querySelectorAll()

两者对比

getElement…querySelector…
效率较慢
返回值类型HTMLCollection (动态集合, 索引)Nodelist(静态列表, 拷贝)
作用对象只可通过document调用可以在节点上调用
参数单独检索类, 对象标签名, 或id对象标签, 类目, id组合使用(但区别于css语法)
  1. 效率
    两种方法都是深度优先搜索遍历文档, 区别在于当文档中的元素逐渐增多的时候, 由于query系列方法 采用的是拷贝节点生成列表, 所以效率缓慢
    同样情况下从文档document开始搜索节点时, 两者时间消耗的差距倍增
    不同的是, query方法可以作用在节点上, 所以正确的使用方法是 使用document.getElement获得元素索引, 再使用query方法获取该元素中的某些特定元素

    同时querySelector 可以一次检索多种标签, 方便操作, 当然同时伴随性能的损失, 需要取舍

  2. 返回值类型的不同
    query返回的NodeList的特点是:其里面的内容是静态不变的,不会随着dom元素的变化而改变
    get返回的HTMLCollection的特点是,其内容是动态的,会随着dom的元素的更改而改变。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值