登录  /  注册
首页 > web前端 > js教程 > 正文

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

php中文网
发布: 2016-05-16 17:29:56
原创
1210人浏览过

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

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

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

复制代码 代码如下:

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

getElementsByTagName()
getElementsByTagName()参数需传入的是一个html标签名,它返回的是html文档中所有与之匹配的元素列表,这个列表具有部分数组的特性,因此也称其为类数组。当我们想操作某个特定的元素时,我们可以使用数组索引或item()来实现,例如:
复制代码 代码如下:

<script><BR> var oDiv = document.getElementsByTagName('div'); //查找所有div元素,返回一个元素列表<BR> /* 操作特定元素 */<BR> alert(oDiv[0].innerHTML) //弹出第一个div中的内容<BR> alert(oDiv.item(1).innerHTML) //弹出第二个div中的内容<BR> </script>

当然我们还可以通过length属性来循环遍历节点:
复制代码 代码如下:

<script><BR> var oDiv = document.getElementsByTagName('div'); <BR> for(var i = 0; i < oDiv.length; i++){<BR> //do something<BR> }<BR> </script>

getElementsByName()
getElementsByName()常用来查找表单元素,参数中传入html标签的name属性值,由于文档中多个html标签的name值可能相同(如单选按钮),因此该方法返回的也是一个元素列表。具体操作方法与getElementsByTagName()类似,这里不在赘述。
复制代码 代码如下:

<script><BR> var oIpt= document.getElementsByName('city'); //查找name值为city的元素 <BR> alert(oIpt[0].value);<BR> alert(oIpt.item(1).value);<BR> </script>

getByClass()
虽然使用上面的几种方法已经可以满足常见需求,但是为了更方便的访问元素节点,我们一般会自己封装一个通过class来查找元素的方法:
复制代码 代码如下:

<script><BR> /** getByClass **/<BR> function getByClass(oParent, sClass){<BR> var aEle = oParent.getElementsByTagName('*');<BR> var re = new RegExp('\\b' + sClass + '\\b');<BR> var aResult = [];<BR> for(var i = 0; i < aEle.length; i++){<BR> if(re.test(aEle[i].className)){<BR> aResult.push(aEle[i]);<BR> }<BR> }<BR> return aResult;<BR> }<BR> </script>

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

另外这里之所以用正则来匹配而没有直接用aEle[i].className == sClass,是避免标签的class值为多个时,出现匹配失效的情况。
智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号