有没有办法在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 };