如何用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 UI AutoComplete 使用说明
Jun 20 Javascript
解析javascript 浏览器关闭事件
Jul 08 Javascript
JavaScript常用验证函数实例汇总
Nov 25 Javascript
javascript中Date format(js日期格式化)方法小结
Dec 17 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
Jan 13 Javascript
jQuery unbind()方法实例详解
Jan 19 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
Oct 05 Javascript
JS常用知识点整理
Jan 21 Javascript
AngularJS路由实现页面跳转实例
Mar 03 Javascript
微信小程序websocket实现聊天功能
Mar 30 Javascript
移动端手指操控左右滑动的菜单
Sep 08 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
Jul 14 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 Mysql类 可以参考学习熟悉下
2009/06/21 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
JS获取时间的方法
2015/01/21 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
django使用图片延时加载引起后台404错误
2017/04/18 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
python 实现二维列表转置
2019/12/02 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
机械操作工岗位职责
2014/08/08 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
行为习惯主题班会
2015/08/14 职场文书
决心书格式及范文
2019/06/24 职场文书
教你用python控制安卓手机
2021/05/13 Python
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技