3

我需要编写 jquery 代码,例如:

if($('label').hasClass('info_')) {

}

有很多类名,如:info_1、info_2、info_3 等。所以,如果标签有一个以 info_ 开头的类名,我必须这样写。做点什么。

但我查看了 jquery 站点并搜索了 hasClass()。没有这方面的例子。有什么办法吗?谢谢你。

4

5 回答 5

12

尝试使用:

  $("[class^=info_]"); //Classes Starts with  info_
  $('[class*=info_]');  // Classes which contains info_

根据您的代码而不是hasClass

if($('label').is('[class*=info_]')){} //Contains

或者

 if($('label').is('[class^=info_]')){} //Starts with
于 2012-07-24T16:35:08.297 回答
4

你不能用hasClass,但你可以用filter。您可以浏览课程,并找到匹配的课程。

var $labels = $('label').filter(function(){
    return /\b(info_\d+)\b/.test(this.className);
});
于 2012-07-24T16:49:01.220 回答
3
if( /(^|\s)info_/.test( $('label')[0].className ) ) {

}

或者如果您有多个标签:

if ($("label").is(function() {
    return /(^|\s)info_/.test(this.className);
})) {

}
于 2012-07-24T16:41:05.693 回答
0

一个元素可以有多个class值(用空格分隔)。所以使用这样的东西:

<label class="has_info info_1">...</label>

然后你可以这样做:

if ( $('label').hasClass('has_info')
{
    // ...
}

编辑:“开始于”CSS 选择器可能是这里更好的路线。然而,接下来的内容仍然是正确的。

虽然我确实认为这$(label).hasClass()是一个坏主意。你可能想要这样的东西:

$('label').each(function() {
    if ( $(this).hasClass('has_info') )
    {
        // ...
    }
});
于 2012-07-24T16:35:58.623 回答
0

如果要检查类名称是否以...开头,则可以使用以下代码您要检查以 myclass- 开头
的类,因此它会根据您在警报中的输入为您提供出现次数。据此,输出为 2。

<div class="myclass-s1"></div>
<div class="myclass-b10"></div>
<div class="myclassb10"></div>

$.expr[':'].hasClassStartingWithInput = function(obj){
return ((/\bmyclass-/).test(obj.className)); //here is the input(myclass-)that you need to give
 };
于 2014-04-30T13:09:39.607 回答