由于类属性的设计方式,您需要使用至少两个其他属性选择器(请注意[class * =“detail-”]中的空格):
$('a[class^="detail-"], a[class*=" detail-"]');
这选择< a>具有类属性的元素
>从细节开始,或
>包含一个前缀为detail-的类.类名称由空格分隔为07000,因此具有显着的空间特征.
如果您想将其转换成自定义选择器表达式,可以这样做:
$.expr[':']['class-prefix'] = function(elem, index, match) {
var prefix = match[3];
if (!prefix)
return true;
var sel = '[class^="' + prefix + '"], [class*=" ' + prefix + '"]';
return $(elem).is(sel);
};
然后选择它:
$('a:class-prefix(detail-)');
或者,如果您想将其放在插件中:
$.fn.filterClassPrefix = function(prefix) {
if (!prefix)
return this;
var sel = '[class^="' + prefix + '"], [class*=" ' + prefix + '"]';
return this.filter(sel);
};
然后调用它:
$('a').filterClassPrefix('detail-');