如何用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 相关文章推荐
window.open被浏览器拦截后的自定义提示效果代码
Nov 19 Javascript
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
Dec 18 Javascript
Javascript中实现trim()函数的两种方法
Feb 04 Javascript
javascript 闭包详解
Feb 15 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
May 25 Javascript
JQuery自适应窗口大小导航菜单附源码下载
Sep 01 Javascript
jquery if条件语句的写法
May 19 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
Jan 04 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
Jan 24 Javascript
使用Xcache缓存器加速PHP网站的配置方法
Apr 22 Javascript
详解JavaScript的变量
Apr 04 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
smarty模板中拼接字符串的方法
2014/02/14 PHP
php求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
javascript两段代码,两个小技巧
2010/02/04 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
2016/02/17 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
python3 requests库文件上传与下载实现详解
2019/08/22 Python
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
欧克利英国官网:Oakley英国
2019/08/24 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
庆元旦演讲稿
2014/09/15 职场文书
企业法人代表证明书
2014/09/27 职场文书
违纪学生保证书
2015/02/27 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
社团招新宣传语
2015/07/13 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers
配置Kubernetes外网访问集群
2022/03/31 Servers
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL