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 相关文章推荐
JS 密码强度验证(兼容IE,火狐,谷歌)
Mar 15 Javascript
非阻塞动态加载javascript广告实现代码
Nov 17 Javascript
javascript之bind使用介绍
Oct 09 Javascript
JavaScript初学者应注意的七个细节详细介绍
Dec 27 Javascript
JS冒泡事件的快速解决方法
Dec 16 Javascript
JQuery判断HTML元素是否存在的两种解决方法
Dec 26 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
利用原生JS自动生成文章标题树的实例
Aug 22 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
May 02 Javascript
JS事件循环机制event loop宏任务微任务原理解析
Aug 04 Javascript
如何在JavaScript中使用localStorage详情
Feb 04 Javascript
Web应用开发TypeScript使用详解
May 25 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 魔术函数使用说明
2010/02/21 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
javascript动态加载二
2012/08/22 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
js实现转动骰子模型
2019/10/24 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
wxPython 入门教程
2008/10/07 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
python中sleep函数用法实例分析
2015/04/29 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
python中subprocess批量执行linux命令
2018/04/27 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
python绘制雷达图实例讲解
2021/01/03 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
什么是事务?事务有哪些性质?
2012/03/11 面试题
我的祖国演讲稿
2014/05/04 职场文书
2014年法务工作总结
2014/12/11 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书