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 相关文章推荐
Prototype ObjectRange对象学习
Jul 19 Javascript
jQuery入门第一课 jQuery选择符
Mar 14 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
Jun 28 Javascript
jquery控制select的text/value值为选中状态
Jun 03 Javascript
使用jQuery管理选择结果
Jan 20 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
Jul 14 Javascript
js接收并转化Java中的数组对象的方法
Aug 11 Javascript
EditPlus中的正则表达式 实战(2)
Dec 15 Javascript
基于jQuery实现左侧菜单栏可折叠功能
Dec 27 Javascript
javascript 中的try catch应用总结
Apr 01 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
Oct 26 Javascript
原生JS实现无缝轮播图片
Jun 24 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/05/18 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
Javascript之文件操作
2007/03/07 Javascript
Javascript 遍历对象中的子对象
2009/07/03 Javascript
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
简单的编程0基础下Python入门指引
2015/04/01 Python
利用Python获取操作系统信息实例
2016/09/02 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python实现线程状态监测简单示例
2018/03/28 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
2014植树节活动总结
2014/03/11 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android