如何用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 相关文章推荐
javascript生成/解析dom的CDATA类型的字段的代码
Apr 22 Javascript
按给定几率进行随机抽取的js代码
Dec 28 Javascript
JavaScript的arguments对象应用示例
Sep 15 Javascript
Javascript中this关键字的一些小知识
Mar 15 Javascript
jquery图片切换实例分析
Apr 15 Javascript
理解javascript异步编程
Jan 27 Javascript
Vue组件全局注册实现警告框的实例详解
Jun 11 Javascript
详解微信小程序与内嵌网页交互实现支付功能
Oct 22 Javascript
vue.js实现简单的计算器功能
Feb 22 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
Apr 14 Javascript
简单了解JavaScript作用域
Jul 31 Javascript
vue Cli 环境删除与重装教程 - 版本文档
Sep 11 Javascript
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笔试题
2009/08/04 PHP
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
关于IIS php调用com组件的权限问题
2012/01/11 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
js判断是否是手机页面
2017/03/17 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
python生成指定尺寸缩略图的示例
2014/05/07 Python
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
Python实现单词翻译功能
2017/06/06 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
Python是如何进行类型转换的
2013/06/09 面试题
大学生村官事迹材料
2014/01/21 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
市场营销工作计划书
2014/09/15 职场文书
2014年科协工作总结
2014/12/09 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers