判断html节点的class是否有no-js。1.jquery的实现方式$("html").hasClass('no-js');jquery源码的实现方式:var rclass = /[\t\r\n\f]/g;jQuery.fn.extend({ hasClass: function(s" />
当前位置:首页 > 日记 > 正文

如何用js判断dom是否有存在某class的值

如何用js判断dom是否有存在某class的值

例如:

<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") ) ;

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

相关文章

vue mintui-Loadmore结合实现下拉

vue mintui-Loadmore结合实现下拉

上拉加载,下拉刷新,示例,电脑软件,vue,mintui是饿了么团队针对vue开发的移动端组件库,方便实现移动端的一些功能,这里只用了Loadmore功能实现移动端的上拉分页刷新,下拉加载数据,废话不说上代码。<template> <div class="main-body" :style=…

word2010中插入作者简介的两种方法

word2010中插入作者简介的两种方法

方法,作者简介,两种,电脑软件,strong,  发表论文的时候,常常需要在第一页的正文插入&ldquo;作者简介&rdquo;,怎样快速而方便地实现这一功能呢,那么下面就由小编给大家分享下word2010中插入作者简介技巧,希望能帮助到您。word2010中插入作者简…

excel表格批量导入的教程excel表格

excel表格批量导入的教程excel表格

批量导入,教程,表格,图片,电脑软件,  在Excel中录入好数据以后经常需要用到图片进行对表格的美化修饰,或许有的朋友并不知道图片该如何批量导入,如果不懂的朋友欢迎一起来摸索探讨一番吧。下面是由小编分享的excel表格批量导入图片的教程,以…

Word2013怎么对文本进行排序Word20

Word2013怎么对文本进行排序Word20

文本,排序,方法,电脑软件,大家知道Excel中有排序功能,实际上Word也可以对内容进行排序的,下面小编告诉你具体怎么做吧。希望对你有帮助!  Word2013对文本进行排序的方法例如Word中有如下图所示的文档。Word2013对文本进行排序的方法图1  …

Excel2010怎么将数据转换成图形

Excel2010怎么将数据转换成图形

数据,图形,步骤,转换成,电脑软件,  我们在使用Excel制作表格时,需要把数据转换成图形图。那么,我们应该怎样做呢?那么下面小编就来告诉你Excel2010是怎么将数据转换成图形的吧。希望对你有帮助!Excel2010将数据转换成图形的步骤1、启动Excel…

浅谈node的事件机制

浅谈node的事件机制

事件机制,浅谈,电脑软件,node,Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.在nodejs的官方文档中,明确写出了node的一个特性是event-driven(事件驱动),可见其非常重要。查看源码,我们可知其…

微信小程序 跳转传参数与传对象详

微信小程序 跳转传参数与传对象详

对象,实例代码,传参数,跳转,详解,微信小程序 跳转传参数 传对象微信小程序跳转传参一般都是传字符串到下一页,如果要想传对象怎么办呢?我的解决办法是先将对象转换为json字符串然后到下个页面将json字符串,再转化为对象。如下:let str=JSON.str…

ES6模块化的import和export用法方

ES6模块化的import和export用法方

方法,模块化,电脑软件,export,import,ES6之前已经出现了js模块加载的方案,最主要的是CommonJS和AMD规范。commonjs主要应用于服务器,实现同步加载,如nodejs。AMD规范应用于浏览器,如requirejs,为异步加载。同时还有CMD规范,为同步加载方案如seaJS…

怎么更换ppt的模板更换ppt的模板的

怎么更换ppt的模板更换ppt的模板的

模板,方法,步骤,电脑软件,ppt,  为了统一形象,我们需要将我们的ppt做的更规范一些,这就需要一个统一的模板,特别是背景,下面小编教你怎么更换ppt的模板。更换ppt的模板的方法首先,我们打开需要修改的PPT文件。如图所示,我们现在的ppt就是一个空…

JavaScript实现各种排序的代码详解

JavaScript实现各种排序的代码详解

各种排序,详解,代码,电脑软件,JavaScript,冒泡排序function Bubble(arr){ var temp; for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ temp=arr[i]; arr[i]=a…

AI怎么绘制一个咖啡杯图标?

AI怎么绘制一个咖啡杯图标?

图标,绘制,咖啡杯,电脑软件,AI,看到咖啡杯子不错,想要绘制这个图形作为图标,该怎么绘制呢?下面我们就来看看详细的教程。软件名称:Adobe Illustrator CS6 (AI cs6) 精简绿色中文版(32位+64位)软件大小:205MB更新时间:2014-05-111、打开AI软件,新建…

在PPT2007幻灯片中如何让艺术字逐

在PPT2007幻灯片中如何让艺术字逐

显示,逐行,幻灯,片中,艺术字,  一个PPT演示文稿的内容是否丰富,在很大程度上与它的幻灯片特效是密不可分的,为幻灯片添加各种特效可以使幻灯片看上去更具吸引力。以下是小编为您带来的关于在PPT2007幻灯片中让艺术字逐行显示,希望对您有所帮…