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 相关文章推荐
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
js获取html页面节点方法(递归方式)
Dec 13 Javascript
jQuery的缓存机制浅析
Jun 07 Javascript
jQuery中filter()方法用法实例
Jan 06 Javascript
学习JavaScript设计模式之观察者模式
Apr 22 Javascript
浅谈JavaScript对象与继承
Jul 10 Javascript
Javascript将JSON日期格式化
Aug 23 Javascript
js中json处理总结之JSON.parse
Oct 14 Javascript
js仿微信公众平台打标签功能
Apr 08 Javascript
ztree简介_动力节点Java学院整理
Jul 19 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
Jul 04 Javascript
微信小程序解除10个请求并发限制
Dec 18 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
MySQL 日期时间函数常用总结
2012/06/12 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
Js callBack 返回前一页的js方法
2008/11/30 Javascript
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
Ionic快速安装教程
2016/06/03 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
python中元类用法实例
2014/10/10 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
Python执行时间的几种计算方法
2020/07/31 Python
css3学习心得分享
2013/08/19 HTML / CSS
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
小学见习报告
2014/10/31 职场文书
手机销售员岗位职责
2015/04/11 职场文书
2015年司法所工作总结
2015/04/27 职场文书
项目合作意向书
2015/05/08 职场文书
债务追讨律师函
2015/06/24 职场文书
初中政治教师教学反思
2016/02/23 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
Python自动化测试PO模型封装过程详解
2021/06/22 Python
Python之matplotlib绘制饼图
2022/04/13 Python
Windows Server 2012 R2 磁盘分区教程
2022/04/29 Servers