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拖拽(第一课 未兼容)拖拽思路

    原生js拖拽(第一课 未兼容)拖拽思路

    第一步点击需要拖动的元素,在点击下的元素被选中,进行move移动,当鼠标弹起的时候,停止动作.点击元素oDIV的时候,可用的是oDIV区域,而move和up则是全局区域
    2013-03-03
  • JavaScript中的ubound函数使用实例

    JavaScript中的ubound函数使用实例

    这篇文章主要介绍了JavaScript中的ubound函数使用实例,本文先是讲解了ubound函数的语法,然后给出了用法代码实例,需要的朋友可以参考下
    2014-11-11
  • 理解Javascript_15_作用域分配与变量访问规则,再送个闭包

    理解Javascript_15_作用域分配与变量访问规则,再送个闭包

    在阅读本博文之前,请先阅读《理解Javascript_13_执行模型详解》 在'执行模型详解'中讲到了关于作用域分配的问题,这一篇博文将详细的说明函数对象、作用域链与执行上下文的关系。
    2010-10-10
  • 纯JS实现旋转图片3D展示效果

    纯JS实现旋转图片3D展示效果

    本文给大家分享的是纯js实现的类似flash里的图片环绕旋转效果,非常炫酷,有需要的小伙伴可以参考下。
    2015-04-04
  • JS实现提交表单前的数字及邮箱校检功能

    JS实现提交表单前的数字及邮箱校检功能

    在项目开发中经常会遇到表单提交功能,今天小编抽空给大家分享JS实现提交表单前的数字及邮箱校检功能,需要的朋友参考下吧
    2017-11-11
  • 纯javascript实现图片延时加载方法

    纯javascript实现图片延时加载方法

    看到一篇博客说土豆网的图片是延迟加载的。原理是这样:页面可见区域以下的图片先不加载,等到用户向下滚动到图片位置时,再进行加载。这样做的好处是当页面有好几屏内容时,这样我们就可以只加载用户需要看的图片,减少服务器向用户浏览器发送图片文件所产生的负荷。
    2015-08-08
  • javascript正则表达式中参数g(全局)的作用

    javascript正则表达式中参数g(全局)的作用

    表达式加上参数g之后,表明可以进行全局匹配,注意这里可以的含义。
    2010-11-11
  • JS操作字符串转数字的常见方法示例

    JS操作字符串转数字的常见方法示例

    这篇文章主要介绍了JS操作字符串转数字的常见方法,结合实例形式分析了javascript字符串类型转换的常用方法及相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • javascript实现花样轮播效果

    javascript实现花样轮播效果

    这篇文章主要为大家详细介绍了javascript实现花样轮播效果,一种是带按钮的轮播,一种是自动轮播,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • javascript实现的一个带下拉框功能的文本框

    javascript实现的一个带下拉框功能的文本框

    这篇文章主要介绍了javascript实现的一个带下拉框功能的文本框,需要的朋友可以参考下
    2014-05-05

最新评论