JavaScipt选取文档元素的方法(推荐)


Posted in Javascript onAugust 05, 2016

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

选取文档元素的方法:

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)使用方法:document.getElementsByTagName("tagName")

其中,element是有效的DOM元素(包括document)
                 tagName是DOM元素的标签名

如:var aInput = document.getElementsByTagName("input");

 var aName = aInput[0];

 var pwd = aInput[1];

  var cfm = aInput[2];

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标准的选择器语法

以上这篇JavaScipt选取文档元素的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 面向对象 继承
May 13 Javascript
表单JS弹出填写提示效果代码
Apr 16 Javascript
jquery多选项卡效果实例代码(附效果图)
Mar 23 Javascript
Jquery Easyui表单组件Form使用详解(30)
Dec 19 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
javascript实现秒表计时器的制作方法
Feb 16 Javascript
js return返回多个值,通过对象的属性访问方法
Feb 21 Javascript
微信小程序实现全局搜索代码高亮的示例
Mar 30 Javascript
js数据类型检测总结
Aug 05 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
Jan 20 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
Feb 02 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
Oct 17 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
Aug 05 #Javascript
jQuery实现定位滚动条位置
Aug 05 #Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 #Javascript
浅谈JavaScript中的this指针和引用知识
Aug 05 #Javascript
JavaScript中的this引用(推荐)
Aug 05 #Javascript
JS实现HTML表格排序功能
Aug 05 #Javascript
JavaScript如何实现跨域请求
Aug 05 #Javascript
You might like
Terran历史背景
2020/03/14 星际争霸
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
JS 分号引起的一段调试问题
2009/06/18 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
解决vue项目router切换太慢问题
2020/07/19 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
降低python版本的操作方法
2020/09/11 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
统计每一学生的平均成绩
2014/06/06 面试题
理工类毕业自我鉴定
2014/02/20 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
医生个人年度总结
2015/02/28 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android