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 相关文章推荐
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
Mar 06 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
Jan 19 Javascript
取得窗口大小 兼容所有浏览器的js代码
Aug 09 Javascript
js捕获鼠标滚轮事件代码
Dec 16 Javascript
Jquery中基本选择器用法实例详解
May 18 Javascript
jquery实现标题字体变换的滑动门菜单效果
Sep 07 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 Javascript
javaScript知识点总结(必看篇)
Jun 10 Javascript
JS 拦截全局ajax请求实例解析
Nov 29 Javascript
Node.js和Express简单入门介绍
Mar 24 Javascript
微信小程序实现弹出菜单
Jul 19 Javascript
基于JS开发微信网页录音功能的实例代码
Apr 30 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
DISCUZ 分页代码
2007/01/02 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
python字符串格式化方式解析
2019/10/19 Python
python3实现飞机大战
2020/11/29 Python
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
创立科技Java面试题
2015/11/29 面试题
大学生实习自我鉴定
2013/12/11 职场文书
会计应届生的自荐信
2013/12/13 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
医药销售自荐书
2014/05/29 职场文书
2014高考励志标语
2014/06/05 职场文书
国贸专业求职信
2014/06/28 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
校本课程教学计划
2015/01/19 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL