Из-за способа создания атрибута class
вам нужно будет использовать как минимум два других селектора атрибута (обратите внимание на пробел в [class*=" detail-"]
):
$('a[class^="detail-"], a[class*=" detail-"]');
Это выбирает <a>
элементов с атрибутом class
, которые
- начинается с
detail-
или
- содержит класс с префиксом
detail-
. Имена классов разделяются пробелами в спецификации HTML , отсюда и символ пробела.
Если вы хотите превратить это в пользовательское выражение селектора, вы можете сделать это:
$.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-');