如何用js判断dom是否有存在某class的值


Posted in Javascript onFebruary 13, 2017

例如:

<html class="no-js">
<head>
</head>
<body>
</body>
</html>

判断html节点的class是否有no-js。

1.jquery的实现方式

$("html").hasClass('no-js');

jquery源码的实现方式:

var rclass = /[\t\r\n\f]/g;
jQuery.fn.extend({
 hasClass: function(selector) {
  var className = " " + selector + " ",
   i = 0,
   l = this.length;
  for (; i < l; i++) {
   if (this[i].nodeType === 1 &&
    (" " + this[i].className + " ").replace(rclass, " ").indexOf(className) > -1) {
    return true;
   }
  }
  return false;
 }
})

2.js的实现方式

function hasClass(element, cls) {
 return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}
hasClass(document.querySelector("html"), 'no-js');

3.H5的classList

说明下:

  1. 字符串的indexOf方法是无法区分.no-js和.no-js-indeed这样的类;
  2. 类名的分隔符可能不是空格,还有可能是\t等。

代码:

var hasClass = (function(){
 var div = document.createElement("div") ;
 if( "classList" in div && typeof div.classList.contains === "function" ) {
  return function(elem, className){
   return elem.classList.contains(className) ;
  } ;
 } else {
  return function(elem, className){
   var classes = elem.className.split(/\s+/) ;
   for(var i= 0 ; i < classes.length ; i ++) {
    if( classes[i] === className ) {
     return true ;
    }
   }
   return false ;
  } ;
 }
})() ;
alert( hasClass(document.documentElement, "no-js") ) ;

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
扩展easyui.datagrid,添加数据loading遮罩效果代码
Nov 02 Javascript
javascript操作excel生成报表全攻略
May 04 Javascript
点击表单提交时出现jQuery没有权限的解决方法
Jul 23 Javascript
JavaScript定义类和对象的方法
Nov 26 Javascript
jQuery中scrollLeft()方法用法实例
Jan 16 Javascript
javaScript知识点总结(必看篇)
Jun 10 Javascript
jQuery用FormData实现文件上传的方法
Nov 21 Javascript
vue组件编写之todolist组件实例详解
Jan 22 Javascript
详解vue项目中调用百度地图API使用方法
Apr 25 Javascript
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
vue props 一次传多个值实例
Jul 22 Javascript
Vue+Bootstrap实现简易学生管理系统
Feb 09 Vue.js
AngularJS学习第一篇 AngularJS基础知识
Feb 13 #Javascript
详解Javascript中DOM的范围
Feb 13 #Javascript
JS简单判断函数是否存在的方法
Feb 13 #Javascript
浅谈js中的变量名和函数名重名
Feb 13 #Javascript
学习使用jQuery表单验证插件和日历插件
Feb 13 #Javascript
js实现打地鼠小游戏
Feb 13 #Javascript
canvas实现钟表效果
Feb 13 #Javascript
You might like
php字符串截取的简单方法
2013/07/04 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
Angular2进阶之如何避免Dom误区
2018/04/02 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
自荐信的五个重要部分
2013/10/29 职场文书
中专生的个人自我评价
2013/12/11 职场文书
工程项目建议书范文
2014/03/12 职场文书
优秀语文教师事迹
2014/05/18 职场文书
商务经理岗位职责
2014/08/03 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
Redis分布式锁Redlock的实现
2021/08/07 Redis
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫