2012-10-12 16 views
7

ho l'HTML corrente:Regular Expression in attributo data - jQuery

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

Questi sono div indipendenti che possono essere utilizzate in combinazione o meno l'invio di dati tramite la tecnologia AJAX.

Ora, un'opzione che ho è di utilizzare entrambi i campi e ho bisogno di recuperare il data-value per entrambi sulla base di alcune opzioni di modulo. l'attributo di dati è differente (è usato per diversi scopi - posso inviare o meno tutti i gruppi o separatamente)

così voglio fare:

$('input').data('group*') ma non funziona, allora mi rendo conto che ho bisogno una regexp.

Esiste un'espressione regolare per l'attributo di dati che posso utilizzare?

+0

Non c'è supporto per cosa stai cercando di fare. Probabilmente starai meglio usando un singolo attributo dati e memorizzando JSON in esso rappresentando la tua struttura. –

+0

@KevinB :(triste, ce n'è uno per il valore allora? Ad esempio: gruppo di dati = "vegetale, animale"? Forse posso cambiare il mio codice per farlo invece –

+0

Sì, tuttavia, .data() può solo restituire i dati di un singolo elemento, dovrai scorrere i tuoi input ed elaborare i loro valori di dati se ne hai bisogno tutti. –

risposta

22

È possibile utilizzare i selettori se si modificano gli attributi.

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

Quindi, si potrebbe avere invece un data-group-type e query per che:

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

Qualche esempio interroga

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

Ci sono altri selettori: http://api.jquery.com/category/selectors/

+0

piace, grazie che ha aiutato –

Problemi correlati