2012-10-12 17 views
7

Ich habe die aktuelle html:Regular Expression in Datenattribut - jquery

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

Diese sind unabhängig divs, die zusammen oder nicht verwenden können, wenn Daten über Ajax senden.

Jetzt ist eine Option, die ich habe, beide Felder zu verwenden, und ich muss die data-value für beide basierend auf einigen Formularoptionen abrufen. das Datenattribut unterschiedlich ist (wird für verschiedene Zwecke verwendet - ich kann oder separat alle oder nicht, die Gruppen senden)

so tun, ich will:

$('input').data('group*') aber es nicht funktioniert, dann wird mir klar, ich brauche ein Regexp.

Gibt es eine Regexp für Datenattribute, die ich verwenden kann?

+0

Es gibt keine Unterstützung für was Du versuchst es zu tun. Es wäre wahrscheinlich besser, ein einzelnes Datenattribut zu verwenden und json darin zu speichern, um Ihre Struktur zu repräsentieren. –

+0

@KevinB :(traurig, gibt es einen für den Wert dann zum Beispiel: Daten-Gruppe = "Gemüse, Tier"? Vielleicht kann ich meinen Code ändern, um dies stattdessen zu tun –

+0

Ja, jedoch .data() kann nur zurückgeben die Daten eines einzelnen Elements, müssen Sie durchlaufen Ihre Eingaben und verarbeiten ihre Datenwerte, wenn Sie sie alle benötigen –

Antwort

22

Sie könnten Selektoren verwenden, wenn Sie Ihre Attribute ändern.

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

So könnten Sie stattdessen eine data-group-type und Abfrage für das:

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

Einige Beispiel fragt

$('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' 

Es gibt andere Selektoren: http://api.jquery.com/category/selectors/

+0

wie es, danke, dass geholfen hat –