1 2 3 4 5 6 7 8 9 10 11 | jQuery.expr[':'].regex = function(elem, index, match) { var matchParams = match[3].split(','), validLabels = /^(data|css):/, attr = { method: matchParams[0].match(validLabels) ? matchParams[0].split(':')[0] : 'attr', property: matchParams.shift().replace(validLabels,'') }, regexFlags = 'ig', regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags); return regex.test(jQuery(elem)[attr.method](attr.property)); } |
Вам необходимо указать атрибут и регулярное выражений для сравнения.
Можно использовать css стили для поиска
Поиск по значениям, хранимым в .data()
источник: 1
2
3
4
5
6
7
8
// Выбрать все элементы, ID которых начинается с гласной:
$(':regex(id,^[aeiou])');
// Выбрать все DIV атрибут class которых содержит цифры:
$('div:regex(class,[0-9])');
// выбрать все теги SCRIPT, SRC которых содержат jQuery:
$('script:regex(src,jQuery)');
1
2
3
4
5
// Выбрать все элементы, ширина которых в диапазоне от 100 до 300px:
$(':regex(css:width, ^[1-3]\\d{2}px$)');
// Выбрать все DIV, отображаемые не как блочные элементы:
$('div:not(:regex(css:display, ^block$))');
1
2
3
4
5
6
7
// добавляем data для всех картинок (просто пример);
$('img').each(function(){
$(this).data('extension', $(this)[0].src.match(/\.(.{1,4})$/)[1]);
});
// Выбираем все картинки формата PNG и JPG:
$('img:regex(data:extension, png|jpg)');
Оставьте свой комментарий