hasClass()以字符串开头

age*_*eur 1 javascript css jquery

是否有可能,以及如何使用hasClass()它来搜索以某些指定字符串开头的类?
我想查看多个类,以查看是否存在至少一个以字符串开头的类。

string: "old"
Run Code Online (Sandbox Code Playgroud)

这可能吗,您还可以进行包含或通配符搜索吗?

Abd*_*UMI 5

选择器将是: [class^=old]

因此:

$('[class^=old]')
Run Code Online (Sandbox Code Playgroud)

句法 :

  • [attr^=vvv]=>选择所有具有属性的元素attr,其值以开头vvv。

  • [attr$=vvv]=>选择所有具有属性的元素attr,其值以结尾vvv。

  • [attr*=vvv]=>选择所有具有属性的元素attr,其值包含 vvv。

Is不是hasClass:

在您的情况下,ismethod更适合hasClass:

 if (element.is('[class^=old]')){


  }
Run Code Online (Sandbox Code Playgroud)

并不是

 if (element.hasClass('[class^=old]')){


  }
Run Code Online (Sandbox Code Playgroud)

jQuery插件:

$.fn.hasClassStartsWith=function(prefix){
    return $(this).is(`[class^=${prefix}]`);
};
Run Code Online (Sandbox Code Playgroud)

然后 :

if (element.hasClassStartsWith('old')){
     // do your staff
}
Run Code Online (Sandbox Code Playgroud)

演示