2012-10-12 12 views
7

mam aktualny HTML:Regular Expression w atrybucie danych - jquery

<input id="dynamic1" /* other */ data-group-animal="y1,y2" /> 
<input id="dynamic2" /* other */ data-group-vegetable="y3,y4" /> 

te są niezależne div, które można używać razem lub nie podczas wysyłania danych za pośrednictwem AJAX.

Teraz jedną z opcji jest użycie obu pól i muszę pobrać data-value dla obu na podstawie niektórych opcji formularza. atrybut dane są różne (służy do różnych celów - mogę wysyłać ani nie wszystkich grup lub osobno)

więc chcę zrobić:

$('input').data('group*') ale to nie działa, to zdaję sobie sprawę, muszę wyrażenie regularne.

Czy istnieje regexp dla atrybutu danych, którego mogę użyć?

+0

Nie ma wsparcia dla tego, co próbujesz to zrobić. Prawdopodobnie lepiej byłoby użyć pojedynczego atrybutu danych i przechowywać w nim json reprezentujący twoją strukturę. –

+0

@KevinB :(smutny, czy istnieje jeden dla wartości? Na przykład: data-group = "warzywo, zwierzę"? Może mogę zmienić kod, aby to zrobić zamiast tego –

+0

Tak, jednak. Data() może tylko zwrócić dane pojedynczego elementu, będziesz musiał przechodzić przez wejścia i przetwarzać ich wartości danych, jeśli ich potrzebujesz. –

Odpowiedz

22

Możesz użyć selektorów, jeśli zmienisz swoje atrybuty.

http://jsfiddle.net/kvJVM/1/

Tak, można mieć zamiast tego data-group-type i kwerendy dla że:

<input id="dynamic1" data-group-type="animal" data-group="y1,y2" /> 
<input id="dynamic2" data-group-type="vegetable" data-group="y3,y4" />​ 

Niektóre przykład odpytuje

$('input[data-group]') // all 

$('input[data-group-type^="animal"]') // starts with 'animal' 
$('input[data-group-type*="l"]') // contains 'l' 
$('input[data-group-type!="animal"]') // not 'animal' 

Istnieją inne selektory: http://api.jquery.com/category/selectors/

+0

podoba się, dzięki, że pomogło –

Powiązane problemy