javascript基础之查找元素的详细介绍(访问节点)


Posted in Javascript onJuly 05, 2013

当然这些选择器都是jQuery扩展的一些方法,那么使用原生js时要怎样来查找元素呢?今天就来简单梳理下。

DOM定义了多种查找元素的方法,除了我们常用的getElementById(),还有getElementsByTagName()和getElementsByName()。使用这几种方法方法我们可以查找html文档中的任意html元素。

getElementById()
首先来看下getElementById(),这个方法很简单,只需在参数中传入html标签的id属性值即可,由于html页面中的id具有唯一性,因此该方法返回的是单个元素对象。例如:

<span id="span1">span标签</span>
 <script>
     var oSpan = document.getElementById('span1'); //查找span元素
     alert(oSpan.innerHTML); //弹出span标签中的内容
 </script>

getElementsByTagName()
getElementsByTagName()参数需传入的是一个html标签名,它返回的是html文档中所有与之匹配的元素列表,这个列表具有部分数组的特性,因此也称其为类数组。当我们想操作某个特定的元素时,我们可以使用数组索引或item()来实现,例如:
<script>
     var oDiv = document.getElementsByTagName('div'); //查找所有div元素,返回一个元素列表
     /* 操作特定元素 */
     alert(oDiv[0].innerHTML) //弹出第一个div中的内容
     alert(oDiv.item(1).innerHTML) //弹出第二个div中的内容
 </script>

当然我们还可以通过length属性来循环遍历节点:
<script>
     var oDiv = document.getElementsByTagName('div'); 
     for(var i = 0; i < oDiv.length; i++){
         //do something
     }
 </script>

getElementsByName()
getElementsByName()常用来查找表单元素,参数中传入html标签的name属性值,由于文档中多个html标签的name值可能相同(如单选按钮),因此该方法返回的也是一个元素列表。具体操作方法与getElementsByTagName()类似,这里不在赘述。
<script>
     var oIpt= document.getElementsByName('city'); //查找name值为city的元素 
     alert(oIpt[0].value);
     alert(oIpt.item(1).value);
 </script>

getByClass()
虽然使用上面的几种方法已经可以满足常见需求,但是为了更方便的访问元素节点,我们一般会自己封装一个通过class来查找元素的方法:
<script>
     /** getByClass **/
     function getByClass(oParent, sClass){
         var aEle = oParent.getElementsByTagName('*');
         var re = new RegExp('\\b' + sClass + '\\b');
         var aResult = [];
         for(var i = 0; i < aEle.length; i++){
             if(re.test(aEle[i].className)){
                 aResult.push(aEle[i]);
             }
         }
         return aResult;
     }
 </script>

getByClass需传入两个参数,其中oParent为参考节点,即在oParent节点中查找元素,sClass为要查找的元素class的值。通过循环将oParent内的html标签的class值与传入的sClass值一一对比,符合条件的会存入到数组aResult中,最后再返回这个数组。

另外这里之所以用正则来匹配而没有直接用aEle[i].className == sClass,是避免标签的class值为多个时,出现匹配失效的情况。

Javascript 相关文章推荐
关于flash遮盖div浮动层的解决方法
Jul 17 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
Feb 10 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
Mar 18 Javascript
详解AngularJS中module模块的导入导出
Dec 10 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
Mar 01 Javascript
浅谈函数调用的不同方式,以及this的指向
Sep 17 Javascript
React Native时间转换格式工具类分享
Oct 24 Javascript
JavaScript数组push方法使用注意事项
Oct 30 Javascript
JointJS流程图的绘制方法
Dec 03 Javascript
解决vue跨域axios异步通信问题
Apr 17 Javascript
vue实现一拉到底的滑动验证
Jul 25 Javascript
Node使用Nodemailer发送邮件的方法实现
Feb 24 Javascript
js文件缓存之版本管理详解
Jul 05 #Javascript
单击复制文字兼容各浏览器的完美解决方案
Jul 04 #Javascript
把input初始值不写value的具体实现方法
Jul 04 #Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
Jul 04 #Javascript
简单实用jquery版三级联动select示例
Jul 04 #Javascript
原生javascript和jquery判断浏览器版本等信息
Jul 04 #Javascript
js将控件隐藏的方法及display属性介绍
Jul 04 #Javascript
You might like
Wordpress php 分页代码
2009/10/21 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
DOM 高级编程
2015/05/06 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
利用python获取Ping结果示例代码
2017/07/06 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
python yield和Generator函数用法详解
2020/02/10 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
python asyncio 协程库的使用
2021/01/21 Python
中国最大的团购网站:聚划算
2016/09/21 全球购物
Omio葡萄牙:全欧洲低价大巴、火车和航班搜索和比价
2019/02/09 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
办公室文员工作职责
2014/01/31 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
小学生国旗下演讲稿
2014/04/25 职场文书
个性婚礼策划方案
2014/05/17 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
购房协议书范本
2014/10/02 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
自荐信大全
2019/03/21 职场文书
python xlwt模块的使用解析
2021/04/13 Python