我正在使用jQuery并查看是否有简单的方法来确定元素是否具有与其关联的特定CSS类。确定元素是否具有jQuery的CSS类
我有元素的id和我正在寻找的CSS类。我只需要能够在if语句中根据元素上该类的存在进行比较。
我正在使用jQuery并查看是否有简单的方法来确定元素是否具有与其关联的特定CSS类。确定元素是否具有jQuery的CSS类
我有元素的id和我正在寻找的CSS类。我只需要能够在if语句中根据元素上该类的存在进行比较。
使用hasClass
方法:
jQueryCollection.hasClass(className);
或
$(selector).hasClass(className);
的说法是(显然)表示正在检查的类的字符串,它返回一个布尔值(所以也没有像大多数jQuery方法一样支持链接)。
注:如果传递包含空格一个className
的说法,将字面上对集合的元素的className
字符串匹配。所以,如果,例如,你有一个元素,
<span class="foo bar" />
,那么这将返回true
:
$('span').hasClass('foo bar')
,这些将返回false
:
$('span').hasClass('bar foo')
$('span').hasClass('foo bar')
没错。文档在这里:http://docs.jquery.com/Traversing/hasClass – 2008-11-04 20:14:23
我不同意。文档按类别组织,但您也可以按字母顺序轻松查看所有方法。每件事都有一个例子,评论部分通常会清除任何被遗漏的东西。 jQuery有很多优秀的功能和实用程序,需要一些学习来发现它们。 -EDIT-这很有道理,这绝对是一个很长的路要走。 – Trafalmadorian 2010-05-20 05:19:54
@Trafalmadorian,我已经删除了我原来的评论,因为情况已经改变。最初您在-EDIT之前发布了所有内容,并且我回复说我对文档质量的评论不再相关,而是提及他们以前的(MediaWiki)系统。然后,您删除了以前的评论并放置了-EDIT-。我希望这个清理工作对未来的读者来说更清楚一点,不会让人误解。 – eyelidlessness 2010-05-20 18:05:01
elem = $("#elemid");
if (elem.is (".class")) {
// whatever
}
或:
elem = $("#elemid");
if (elem.hasClass ("class")) {
// whatever
}
至于否定,如果你想知道,如果一个元素有没有一个类,你可以简单地做马克说。
if (!currentPage.parent().hasClass('home')) { do what you want }
检查的官方jQuery的FAQ页面:
How do I test whether an element has perticular class or not
没有jQuery的:
var hasclass=!!(' '+elem.className+' ').indexOf(' check_class ')+1;
或者:
function hasClass(e,c){
return e&&(e instanceof HTMLElement)&&!!((' '+e.className+' ').indexOf(' '+c+' ')+1);
}
/*example of usage*/
var has_class_medium=hasClass(document.getElementsByTagName('input')[0],'medium');
这是远远快于jQuery的!
$('.segment-name').click(function() {
if($(this).hasClass('segment-a')){
//class exist
}
});
在我的情况,我用了“是”一个jQuery的功能,我有加,我一直在寻找的这些中间一个特定的类不同的CSS类的一个HTML元素,所以我用了“是一个很好的替代方法来检查一个动态添加到一个html元素的类,它已经有了其他的css类,这是另一个好的选择。
简单的例子:
<!--element html-->
<nav class="cbp-spmenu cbp-spmenu-horizontal cbp-spmenu-bottom cbp-spmenu-open" id="menu">somethings here... </nav>
<!--jQuery "is"-->
$('#menu').is('.cbp-spmenu-open');
先进例如:
<!--element html-->
<nav class="cbp-spmenu cbp-spmenu-horizontal cbp-spmenu-bottom cbp-spmenu-open" id="menu">somethings here... </nav>
<!--jQuery "is"-->
if($('#menu').is('.cbp-spmenu-bottom.cbp-spmenu-open')){
$("#menu").show();
}
在帮助人谁在这里的土地,但实际上是在寻找这样做的jQuery的免费方式的利益:
element.classList.contains('your-class-name')
如果你想没有jQuery,[“hasClass”与JavaScript?](http://stackoverflow.com/q/5085567/1529630) – Oriol 2016-06-12 17:23:54