如何用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字符串判断方法整理
Oct 18 Javascript
node.js中使用socket.io制作命名空间
Dec 15 Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 Javascript
JavaScript中使用Math.PI圆周率属性的方法
Jun 14 Javascript
JavaScript判断数组是否包含指定元素的方法
Jul 01 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
Jul 23 Javascript
AngularJS中controller控制器继承的使用方法
Nov 03 Javascript
微信小程序如何获取openid及用户信息
Jan 26 Javascript
详解vue移动端项目代码拆分记录
Mar 15 Javascript
Vue自定义全局Toast和Loading的实例详解
Apr 18 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
Vue 构造选项 - 进阶使用说明
Aug 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 年龄计算函数(精确到天)
2012/06/07 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
php实现文件上传基本验证
2020/03/04 PHP
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
JS获取地址栏参数的两种方法(简单实用)
2016/06/14 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
vue watch监控对象的简单方法示例
2021/01/07 Vue.js
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
详解Python中的正则表达式的用法
2015/04/09 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
python的unittest测试类代码实例
2017/12/07 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
python实现维吉尼亚算法
2019/03/20 Python
python global和nonlocal用法解析
2020/02/03 Python
pandas数据拼接的实现示例
2020/04/16 Python
python文件编写好后如何实践
2020/07/07 Python
python urllib和urllib3知识点总结
2021/02/08 Python
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
优秀毕业生求职推荐信范文
2013/11/21 职场文书
大学毕业后的十年规划
2014/01/07 职场文书
文明倡议书范文
2014/04/15 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
消防宣传标语大全
2015/08/03 职场文书
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL