JS获取html元素的标记名实现方法


Posted in Javascript onOctober 08, 2016

常见的获取元素的方法有3种,分别是通过元素ID、通过标签名字和通过类名字来获取。

getElementById

DOM提供了一个名为getElementById的方法,这个方法将返回一个与之对应id属性的节点对象。使用的时候请注意区分大小写。

它是document对象特有的函数,只能通过其来调用该方法。其使用的方法如下:

document.getElementById('demo') //demo是元素对应的ID

该方法兼容主流浏览器,甚至包括IE6+,可以大胆使用。

getElementsByTagName

该方法返回一个对象数组(准确的说是HTMLCollection集合,它不是真正意义上的数组),每个对象分别对应着文档里有着给定标签的一个元素。类似于getElementById,同样,该方法只提供一个参数,它的参数是指定标签的名字,示例代码如下:

 

document.getElementsByTagname('li') //li是标签的名字

需要注意的是,该方法除了能被document对象调用之外,还可以被普通的元素调用。示例如下:

原生DOM的话首先获取标签对象,id或者name或其他

例:

<p id="targetp" >2333333</p>
<script>
  var element = document.getElementById("targetp");
  var tagname = element.tagName;
  alert(tagname);
</script>

jQuery获取

$("#content-header").get(0).tagName

如果已经获取到对象可以直接获取标记名

<p onclick="alert('您单击的是:'+this.tagName);">中华人民共和国</p>
var demo = document.getElementById('demo');
var lis = demo.getElementsByTagname('li');

同样,该方法兼容主流浏览器,甚至包括IE6+,可以大胆使用。

getElementsByClassName

除了通过指定标签获取元素外,DOM还提供了getElementsByClassName方法来获取指定class名的元素。不过由于该方法比较新,较老的浏览器还不支持,比如IE6。不过我们可以通过hack方式来弥补老浏览器缺陷。该方法调用的方式如下所示:

document.getElementsByClassName('demo')  //demo为元素指定的class名

和getElementsByTagname一样, 该方法除了能被document对象调用之外,还可以被普通的元素调用。

对于比较老的浏览器,比如IE6、7我们可以通过下面的hack方式来实现:

function getElementsByClassName(node,classname){
    if(node.getElementsByClassName) {
      return node.getElementsByClassName(classname);
    }else {
      var results = [];
      var elems = node.getElementsByTagName("*");
      for(var i = 0; i < elems.length; i++){
        if(elems[i].className.indexOf(classname) != -1){
          results[results.length] = elems[i];
        }
      }
      return results;
    }
  }

拓展

如果你不仅仅满足上面那些元素选择的方法,想和JQuery一样,能通过选择器来获取元素,实现的方法和上面的getElementsByClassName差不多,如果有兴趣自己可以实现一套选择器。不过我觉得有上面的三个方法再结合事件冒泡,已经够用了,毕竟这三种性能上算是优秀的。

以上就是小编为大家带来的JS获取html元素的标记名实现方法全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
用正则xmlHttp实现的偷(转)
Jan 22 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
Jan 06 Javascript
时间戳转换为时间 年月日时间的JS函数
Aug 19 Javascript
javascript垃圾收集机制与内存泄漏详细解析
Nov 11 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 Javascript
百度地图API之本地搜索与范围搜索
Jul 30 Javascript
利用原生JS自动生成文章标题树的实例
Aug 22 Javascript
JS中传递参数的几种不同方法比较
Jan 20 Javascript
javascript防篡改对象实例详解
Apr 10 Javascript
jQuery Collapse1.1.0折叠插件简单使用
Aug 28 jQuery
在vue中获取token,并将token写进header的方法
Sep 26 Javascript
js+h5 canvas实现图片验证码
Oct 11 Javascript
js获取元素的标签名实现方法
Oct 08 #Javascript
什么是JavaScript中的结果值?
Oct 08 #Javascript
如何利用模板将HTML从JavaScript中抽离
Oct 08 #Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
Oct 08 #Javascript
bootstrap下拉列表与输入框组结合的样式调整
Oct 08 #Javascript
Bootstrap字体图标无法正常显示的解决方法
Oct 08 #Javascript
Javascript中常用的检测方法小结
Oct 08 #Javascript
You might like
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
JavaScript 参考教程
2006/12/29 Javascript
JavaScript对象模型-执行模型
2008/04/28 Javascript
javascript call和apply方法
2008/11/24 Javascript
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
python中__slots__用法实例
2015/06/04 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
解决python线程卡死的问题
2019/02/18 Python
python 实现两个线程交替执行
2020/05/02 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
企业统计员岗位职责
2013/12/13 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
Html5生成验证码的示例代码
2021/05/10 Javascript