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

 更新时间:2017年02月13日 09:02:26   作者:孟然  
本文主要介绍了如何用javascript判断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") ) ;

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

相关文章

  • JavaScript实现打字效果的方法

    JavaScript实现打字效果的方法

    这篇文章主要介绍了JavaScript实现打字效果的方法,可实现文字陆续出现的打字效果,涉及javascript时间函数及页面元素获取的相关技巧,需要的朋友可以参考下
    2015-07-07
  • js设置function参数默认值(适合没有传参情况)

    js设置function参数默认值(适合没有传参情况)

    div+css模拟js信息框的类库时遇到一个问题当没有传递参数过去时自动使用提示信息作为窗口标题,具体的实现如下
    2014-02-02
  • js 转义字符及URI编码详解

    js 转义字符及URI编码详解

    本文主要介绍了转义字符及URI编码的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 前端如何使用Cesium加载三维模型详细攻略

    前端如何使用Cesium加载三维模型详细攻略

    三维模型数据格式种类多样,常见的有DAE、OBJ、STL、3DS MAX、CLM、IFC等数据格式,下面这篇文章主要给大家介绍了关于前端如何使用Cesium加载三维模型的相关资料,需要的朋友可以参考下
    2024-05-05
  • 基于Arcgis for javascript实现百度地图ABCD marker的效果

    基于Arcgis for javascript实现百度地图ABCD marker的效果

    本篇文章由脚本之家小编给大家分享的基于Arcgis for javascript实现百度地图ABCD marker的效果,需要的朋友一起学习吧
    2015-09-09
  • JS跳转手机站url的若干注意事项

    JS跳转手机站url的若干注意事项

    去年年底开发了一个手机站平台,遇到了很多坎,今天小编给大家分享下使用JS跳转手机站url的若干注意事项,需要的朋友参考下吧
    2017-10-10
  • JS 可选链的三种形势及好处详解

    JS 可选链的三种形势及好处详解

    这篇文章主要为大家介绍了JS 可选链的三种形势及好处详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • JS开发中百度地图+城市联动实现实时触发查询地址功能

    JS开发中百度地图+城市联动实现实时触发查询地址功能

    这篇文章主要介绍了JS开发中百度地图+城市联动实现实时触发查询地址功能,需要的朋友可以参考下
    2017-04-04
  • 一文详解CORS与预检请求

    一文详解CORS与预检请求

    这篇文章主要介绍了CORS与预检请求,CORS是一套规范,指导浏览器和服务器之间如何进行跨域资源共享,当发送跨域请求时,浏览器会先发送一个OPTIONS方法的预检请求。文中介绍的非常详细,需要的同学可以参考一下
    2023-04-04
  • JavaScript跨平台的开源框架NativeScript

    JavaScript跨平台的开源框架NativeScript

    本文给大家分享的是一款使用javascript来构建跨平台原生移动应用的开源框架--NativeScript,可以使用JavaScript开发跨平台、真正原生的iOS, Android 和 Windows 移动App。开发人员使用NativeScript提供的库来构建应用UI,其抽象了各种原生平台之间的不同。
    2015-03-03

最新评论