有没有办法在jquery中将“hasClass()”的类名写为“以smt开头”?

我需要编写jquery代码,如:

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

有很多类名称,如:info_1,info_2,info_3等等。所以,我必须写一下,如果label有一个类名,它启动info_; 做一点事。

但我看了jquery网站并搜索了hasClass()。 这没有例子。 有什么办法吗? 谢谢。

尝试使用:

  $("[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 

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

 var $labels = $('label').filter(function(){ return /\b(info_\d+)\b/.test(this.className); }); 
 if( /(^|\s)info_/.test( $('label')[0].className ) ) { } 

或者如果您有多个标签:

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

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

  

然后你可以这样做:

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

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

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

 $('label').each(function() { if ( $(this).hasClass('has_info') ) { // ... } }); 

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

 
$.expr[':'].hasClassStartingWithInput = function(obj){ return ((/\bmyclass-/).test(obj.className)); //here is the input(myclass-)that you need to give };