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 相关文章推荐
HTML页面如何象ASP一样接受参数
Feb 07 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
Dec 06 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
Jun 13 Javascript
jQuery之尺寸调整组件的深入解析
Jun 19 Javascript
javascript页面倒计时实例
Jul 25 Javascript
解决微信二次分享不显示摘要和图片的问题
Aug 18 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
Aug 31 Javascript
JS实现调用本地摄像头功能示例
May 18 Javascript
如何在JavaScript中优雅的提取循环内数据详解
Mar 04 Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 Javascript
javascript使用链接跨域下载图片
Nov 01 Javascript
详解 TypeScript 枚举类型
Nov 02 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
php指定函数参数默认值示例代码
2013/12/04 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
学习jquery之一
2007/04/27 Javascript
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
详解node中创建服务进程
2017/05/09 Javascript
谈谈JS中的!!
2017/12/07 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
python实现装饰器、描述符
2018/02/28 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
python树的同构学习笔记
2019/09/14 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
Python爬虫教程知识点总结
2020/10/19 Python
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
总务岗位职责
2013/11/19 职场文书
信息专业个人的自我评价
2013/12/27 职场文书
竞聘演讲稿范文
2014/01/12 职场文书
初中家长寄语
2014/04/02 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
收款委托书
2014/10/14 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
详解Laravel服务容器的优势
2021/05/29 PHP
Python实现老照片修复之上色小技巧
2021/10/16 Python
Python作用域和名称空间的详细介绍
2022/04/13 Python
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python