如何用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 相关文章推荐
JSON 入门指南 想了解json的朋友可以看下
Aug 26 Javascript
JQuery打造省市下拉框联动效果
May 18 Javascript
javascript数组去重的方法汇总
Apr 14 Javascript
JavaScript中Window对象的属性及事件
Dec 25 Javascript
easyui导出excel无法弹出下载框的快速解决方法
Nov 10 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
谈谈jQuery之Deferred源码剖析
Dec 19 Javascript
js+html制作简单验证码
Feb 16 Javascript
浅谈JS如何实现真正的对象常量
Jun 25 Javascript
JavaScript设计模式之调停者模式实例详解
Feb 03 Javascript
记一次webpack3升级webpack4的踩坑经历
Jun 12 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
Aug 09 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通用检测函数集合
2011/02/08 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
Jquery Mobile 自定义按钮图标
2015/11/18 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
vue项目关闭eslint校验
2018/03/21 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
详解vue项目打包步骤
2019/03/29 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
python实现按长宽比缩放图片
2018/06/07 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
皮肤科医师岗位职责
2013/12/04 职场文书
迟到检讨书大全
2014/01/25 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
认购协议书范本
2014/04/22 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
初中作文评语集锦
2014/12/25 职场文书
九年级化学教学反思
2016/02/22 职场文书