为了账号安全,请及时绑定邮箱和手机立即绑定

普通JavaScript的“ hasClass”函数是什么?

普通JavaScript的“ hasClass”函数是什么?

杨魅力 2019-11-06 10:05:18
你怎么做jQuery的hasClass用纯醇”的JavaScript?例如,<body class="foo thatClass bar">什么是JavaScript的方式来询问是否<body>有thatClass?
查看完整描述

3 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

您可以检查是否element.className匹配/\bthatClass\b/。

\b匹配一个单词中断。


或者,您可以使用jQuery自己的实现:


var className = " " + selector + " ";

if ( (" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf(" thatClass ") > -1 ) 

为了回答您的更一般性的问题,您可以在github上查看jQuery的源代码,或者hasClass在此源代码查看器中专门查看源代码。


查看完整回答
反对 回复 2019-11-06
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

只需使用classList.contains():


if (document.body.classList.contains('thatClass')) {

    // do some stuff

}

其他用途classList:


document.body.classList.add('thisClass');

// $('body').addClass('thisClass');


document.body.classList.remove('thatClass');

// $('body').removeClass('thatClass');


document.body.classList.toggle('anotherClass');

// $('body').toggleClass('anotherClass');

浏览器支持:


Chrome 8.0

Firefox 3.6

IE 10

歌剧11.50

Safari 5.1


查看完整回答
反对 回复 2019-11-06
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

最有效的一种衬垫


返回一个布尔值(与Orbling的答案相对)

在搜寻thisClass具有的元素时,不会传回假阳性class="thisClass-suffix"。

与每个浏览器兼容,最低至IE6

function hasClass( target, className ) {

    return new RegExp('(\\s|^)' + className + '(\\s|$)').test(target.className);

}


查看完整回答
反对 回复 2019-11-06
  • 3 回答
  • 0 关注
  • 763 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信