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 URL锚点取值方法
Feb 25 Javascript
JavaScript 继承详解 第一篇
Aug 30 Javascript
使用js检测浏览器的实现代码
May 14 Javascript
详解Javascript函数声明与递归调用
Oct 22 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
Dec 12 Javascript
jquery实现转盘抽奖功能
Jan 06 Javascript
Angular自定义组件实现数据双向数据绑定的实例
Dec 11 Javascript
Vue props用法详解(小结)
Jul 03 Javascript
详解vue axios用post提交的数据格式
Aug 07 Javascript
js核心基础之构造函数constructor用法实例分析
May 11 Javascript
微信小程序页面上下滚动效果
Nov 18 Javascript
Nuxt 项目性能优化调研分析
Nov 07 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 字符串操作入门教程
2006/12/06 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
php生成验证码函数
2015/10/20 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
2017/06/07 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
python中requests和https使用简单示例
2018/01/18 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
新闻学专业应届生求职信
2013/11/08 职场文书
财务人员个人求职信范文
2013/12/04 职场文书
信息总监管理职责范本
2014/03/08 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
幼师辞职信范文
2015/02/27 职场文书
召开会议通知范文
2015/04/15 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书