如何用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 相关文章推荐
JS 统计时间
Mar 09 Javascript
js 函数调用模式小结
Dec 26 Javascript
javascript的offset、client、scroll使用方法详解
Dec 25 Javascript
使用npm发布Node.JS程序包教程
Mar 02 Javascript
JavaScript必知必会(十) call apply bind的用法说明
Jun 08 Javascript
Vue异步组件使用详解
Apr 08 Javascript
浅谈Angular文字折叠展开组件的原理分析
Nov 24 Javascript
video.js 实现视频只能后退不能快进的思路详解
Aug 09 Javascript
浅谈Vue render函数在ElementUi中的应用
Sep 06 Javascript
vue开发拖拽进度条滑动组件
Sep 21 Javascript
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
Vue3实现简易音乐播放器组件
Aug 14 Vue.js
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下过滤HTML代码的函数
2007/12/10 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
关于laravel 子查询 &amp; join的使用
2019/10/16 PHP
prototype Element学习笔记(篇一)
2008/10/26 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
jQuery实现文档树效果
2017/02/20 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
Python 转换文本编码实现解析
2019/08/27 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
成教自我鉴定
2013/10/27 职场文书
搞笑婚前保证书
2015/02/28 职场文书
校运会宣传稿大全
2015/07/23 职场文书
社区干部培训心得体会
2016/01/06 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
DE1107机评
2022/04/05 无线电