2012-10-12 76 views
7

Tengo el código HTML actual:de expresiones regulares en el atributo de datos - jQuery

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

Estos son divs independientes que se pueden utilizar juntos o no cuando se envían datos a través de AJAX.

Ahora, una opción que tengo es usar ambos campos y necesito recuperar el data-value para ambos en función de algunas opciones de formulario. el atributo de datos es diferente (se utiliza para diferentes propósitos - puedo enviar o no todos los grupos o por separado)

por lo que quiero hacer:

$('input').data('group*') pero no funciona, entonces me doy cuenta de que necesito una expresión regular

¿Existe una expresión regular para el atributo de datos que pueda usar?

+0

No hay soporte para qué estás tratando de hacer Probablemente sería mejor usar un solo atributo de datos y almacenar json en él representando su estructura. –

+0

@KevinB :(triste, ¿hay alguna para el valor, por ejemplo: data-group = "vegetable, animal"? Tal vez puedo cambiar mi código para hacer esto en su lugar –

+0

Sí, sin embargo, .data() solo puede devolver los datos de un solo elemento, tendrá que recorrer sus entradas y procesar sus valores de datos si los necesita todos. –

Respuesta

22

Puede usar selectores si cambia sus atributos.

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

Por lo tanto, podría tener lugar una consulta data-group-type y para ello:

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

Algunas consultas de ejemplo

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

Hay otros selectores: http://api.jquery.com/category/selectors/

+0

me gusta, gracias por ayudarme –

Cuestiones relacionadas