JS选取DOM元素的简单方法

 更新时间:2016年07月08日 10:49:59   投稿:jingxian  
下面小编就为大家带来一篇JS选取DOM元素的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

摘自JavaScript权威指南(jQuery根据样式选择器查找元素的终极方式是 先用getElementsByTagName(*)获取所有DOM元素,然后根据样式选择器对所有DOM元素进行筛选)

今天试了下各种选取元素的方法的速度,用原生的方法比jQuery要快差不多8倍,IE8是最慢的,IE9的速度差不多是IE8的3倍,Chrome的表现最好,其次是Firefox)


选取文档元素的方法:

1、通过ID选取元素(getElementById)

1)使用方法:document.getElementById("domId")
   其中,domId为要选取元素的id属性值

2)兼容性:低于IE8版本的IE浏览器对getElementById方法的实现是不区分元素ID号的大小写的,并且会返回匹配name属性的元素。

2、通过名称name选取元素(getElementsByName)

1)使用方法:document.getElementsByName("domName")
    其中,domName为要选取元素的name属性值

2)说明:a. 返回值是一个nodeList集合(区别于Array)

b. 和ID属性不一样,name属性只在少数DOM元素中有效(form表单、表单元素、iframe、img)。这是因为name属性是为了方便提交表单数据而打造的。

c. 为form、img、iframe、applet、embed、object元素设置name属性时,会自动在Document对象中创建以该name属性值命名的属性。所以可以通过document.domName引用相应的dom对象

3)兼容性:IE中ID属性值匹配的元素也会一起返回

3、通过标签名选取元素(getElementsByTagName)

1)使用方法:element.getElementsByTagName("tagName")
   其中,element是有效的DOM元素(包括document)

tagName是DOM元素的标签名

2)说明:a. 返回值是一个nodeList集合(区别于Array)
b. 该方法只能选取调用该方法的元素的后代元素。
c. tagName不区分大小写
d. 当tagName为*时,表示选取所有元素(需遵从b.规则)
e. HTMLDocument会定义一些快捷属性来访问标签节点。如:document的images、forms、links属性指向<img>、<form>、<a>标签元素集合,而document.body和document.head总是指向body和head标签(当未显示声明head标签时,浏览器也会创建document.head属性)

4、通过CSS类选取元素(getElementsByClassName)

1)使用方法:element.getElementsByClassName("classNames")
其中,element是有效的DOM元素(包括document)
classNames是CSS类名称的组合(多个类名之间用空格,可以是多个空格隔开),
如element.getElementsByClassName("class2 class1")将选取elements后代元素中同时应用了class1和class2样式的元素(样式名称不区分先后顺序)

2)说明:a. 返回值是一个nodeList集合(区别于Array)

b. 该方法只能选取调用该方法的元素的后代元素。

3)兼容性:IE8及其以下版本的浏览器未实现getElementsByClassName方法

5、通过CSS选择器选取元素

1)使用方法:document.querySelectorAll("selector")
其中,selector为合法的CSS选择器

2)说明:a. 返回值是一个nodeList集合(区别于Array)

3)兼容性:IE8及其以下版本的浏览器只支持CSS2标准的选择器语法

以上这篇JS选取DOM元素的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • js constructor的实际作用分析

    js constructor的实际作用分析

    大家讨论下constructor的作用哈,需要的朋友可以参考下。从51js摘编而来。
    2011-11-11
  • BootStrapValidator校验方式

    BootStrapValidator校验方式

    做输入校验的时候如果你前端框架用的是bootstrap的话,首推bootstrapValidator校验方式,下面通过本文给大家分享下校验流程,一起看看吧
    2016-12-12
  • JS面试之手写节流防抖详解

    JS面试之手写节流防抖详解

    作为一个程序员,代码实现才是能力体现,在大部分面试的时候,我们都会被要求手写代码实现一个功能,本文总结了一下经常被面试官问到的节流和防抖功能的实现,分享给有需要的小伙伴
    2023-07-07
  • javascript正则表达式之search()用法实例

    javascript正则表达式之search()用法实例

    这篇文章主要介绍了javascript正则表达式之search()用法,实例分析了search()的使用技巧,需要的朋友可以参考下
    2015-01-01
  • 了解Javascript中函数作为对象的魅力

    了解Javascript中函数作为对象的魅力

    这篇文章主要介绍了了解Javascript中函数作为对象的魅力,javascript中函数可以有属性,可以有方法, 可以享有所有对象所拥有的特性。并且最重要的,她还可以直接被调用,需要的朋友可以参考下
    2019-06-06
  • JS实现前端缓存的方法

    JS实现前端缓存的方法

    这篇文章主要为大家详细介绍了JS实现前端缓存的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • layer设置maxWidth及maxHeight解决方案

    layer设置maxWidth及maxHeight解决方案

    这篇文章主要介绍了layer设置maxWidth及maxHeight解决方案,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • 如jQuery般易用的api风格代码分享

    如jQuery般易用的api风格代码分享

    最近几天闲来无事,随便写了点代码玩了玩。个人觉得,应该把编码当做一种乐趣,要不然会觉得很累...
    2011-01-01
  • TypeScript快速上手语法及结合vue3用法详解

    TypeScript快速上手语法及结合vue3用法详解

    TypeScript是一种由微软开发的自由开源的编程语言,主要提供了类型系统和对ES6的支持,下面这篇文章主要给大家介绍了关于TypeScript快速上手语法及结合vue3用法的相关资料,需要的朋友可以参考下
    2024-02-02
  • js输入框邮箱自动提示功能代码实现

    js输入框邮箱自动提示功能代码实现

    一个输入框当我输入任何字的时候自动下拉相应的邮箱提示,在输入框输入11的时候下拉框有所有11的邮箱 输入其他的时候 有其他文案对应的邮箱,下面实现这个自动提示功能
    2013-12-12

最新评论