gleber1
@gleber1

Как делать поиск по паттерну в jquery?

Строю дерево в jquery, чайлд добавлять научился а вот с сиблингами пока беда.Для братиков нужно как то искать в паттерне . Например в лучшем случае
$('body').find('[data-for-tree="some[closure][0][closure][\\d]]"')

// Где \d я имел ввиду любое число . При том хорошо бы чтобы вернулось строгое соответствие
то есть сам регексп такой бы был
/some/[closure/]/[0/]/[closure/]/[\\d/]/
то есть чтобы все что после /[\\d/]/ не искало
Нашел решение :regexp
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));
}


Вызываю :
$(' :regex(data-for-tree,/some\[closure\]\[\d\]/)')

Без результатно
  • Вопрос задан
  • 286 просмотров
Решения вопроса 1
<div data-for-tree="some[closure][1]">child 1</div>
<div data-for-tree="some[closure][2]">child 2</div>

$(':regex(data-for-tree,some\\[closure\\]\\[\\d\\])')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы