如何用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 相关文章推荐
jQuery动态添加的元素绑定事件处理函数代码
Aug 02 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
Oct 18 Javascript
让浏览器DOM元素最后加载的js方法
Jul 29 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
Sep 25 Javascript
JavaScript操作cookie类实例
Mar 31 Javascript
Vue过滤器的用法和自定义过滤器使用
Feb 08 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
Apr 13 Javascript
webpack4的迁移的使用方法
May 25 Javascript
Vue.js图片预览插件使用详解
Aug 27 Javascript
jQuery实现表格隔行换色
Sep 01 jQuery
javascript中关于类型判断的一些疑惑小结
Oct 14 Javascript
react native 仿微信聊天室实例代码
Sep 17 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设计模式 Facade(外观模式)
2011/06/26 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
利用js对象弹出一个层
2008/03/26 Javascript
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
一些常用的JS功能函数代码
2009/06/23 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
Python序列化基础知识(json/pickle)
2017/10/19 Python
python删除服务器文件代码示例
2018/02/09 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
wxPython色环电阻计算器
2019/11/18 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
Django celery异步任务实现代码示例
2020/11/26 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
linux下进程间通信的方式
2013/01/23 面试题
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
开工仪式主持词
2014/03/20 职场文书
小学生演讲稿大全
2014/04/25 职场文书
法院授权委托书格式
2014/09/28 职场文书
超搞笑婚前保证书
2015/05/08 职场文书