2015-09-28 2 views
1

У меня есть некоторые слайдеры на странице. Каждый слайдер имеет uniq id.regexp в селекторе JQuery

<div id="gallery-1"><div> 
<div id="gallery-2"><div> 
........................ 
<div id="gallery-10"><div> 

И у меня есть некоторые функции (JQuery)

$('#gallery-1').royalSlider({....}) 
$('#gallery-2').royalSlider({....}) 
............................................... 
$('#gallery-1').royalSlider({....}) 

Если у меня есть 10 бегунок на странице, я должен копировать вставить 10 fragmets JQuery кода (как я сопрягали выше). Я хочу использовать Regexp для $('#gallery-[/\d/]'). Могу ли я создать что-то подобное, или mb есть другой способ?

+2

Есть плагины, которые добавляют эту функциональность, но это неправильный способ устранить эту проблему. Вместо этого вы должны использовать общий класс для этих элементов, тогда вы можете легко выбрать их все с помощью 1 селектора. В этот момент было бы разумнее отделить атрибут id от значения id в его собственном атрибуте, поэтому вам не нужно выполнять синтаксический анализ строки, чтобы получить идентификатор галереи. Даже тогда, если id всегда идет 1-n, вам не нужно хранить это на элементе, так как вы можете использовать индекс элементов внутри его родителя, чтобы получить его индекс. –

+0

Знаете ли вы ID? Если да, почему бы просто не объединиться в цикле? '$ ('# галерея -' + я)'? Или даже хранить все идентификаторы ползунков в массиве и цикл через этот массив? '$ ('#' + arrayID [i])' Или использовать общий класс для ползунков, как предложил Кевин Б? – fpierrat

ответ

2

попробовать с помощью: -

$('div[id^="gallery-"]') 

это будет искать все дивы с id's начиная с gallery-

1

В чистом JQuery, вы можете использовать это:

$('div[id^=gallery-]').royalSlider({...}) 

Даже если вы должны действительно помечайте те div с некоторыми атрибутами.

Смежные вопросы