如何用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 Ajax学习实例3 向WebService发出请求,调用方法返回数据
Mar 16 Javascript
基于JQuery的Select选择框的华丽变身
Aug 23 Javascript
jquery子元素过滤选择器使用示例
Jun 24 Javascript
JS中for循序中延迟加载动态效果的具体实现
Aug 18 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
Jun 16 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
Mar 31 Javascript
JavaScript 数组的深度复制解析
Nov 02 Javascript
详解Angular的8个主要构造块
Jun 20 Javascript
node实现分片下载的示例代码
Oct 17 Javascript
es6基础学习之解构赋值
Dec 10 Javascript
浅谈Node 异步IO和事件循环
May 05 Javascript
使用JS location实现搜索框历史记录功能
Dec 23 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 反射机制实现动态代理的代码
2008/10/22 PHP
通俗易懂的php防注入代码
2010/04/07 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
python生成日历实例解析
2014/08/21 Python
python提取内容关键词的方法
2015/03/16 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
python 剪切移动文件的实现代码
2018/08/02 Python
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
浅谈pc和移动端的响应式的使用
2019/01/03 HTML / CSS
linux下进程间通信的方式
2014/12/23 面试题
个人实用的自我评价范文
2013/11/23 职场文书
公司成立感言
2014/01/11 职场文书
给老师的一封建议书
2014/03/13 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技