[Javascript] Selector jQuery para entradas con corchetes en el atributo de nombre


Answers

Puede usar la barra diagonal inversa para citar caracteres "divertidos" en sus selectores de jQuery:

$('#input\\[23\\]')

Para valores de atributo, puede usar comillas:

$('input[name="weirdName[23]"]')

Ahora, estoy un poco confundido por tu ejemplo; ¿A qué se parece exactamente tu HTML? ¿Dónde aparece la cadena "inputName", en particular?

editar bogosity fijo; gracias @Dancrumb

Question

Estoy tratando de seleccionar este elemento que tiene corchetes en el atributo de nombre:

<input type="text" name="inputName[]" value="someValue">

Intenté esto (que no funciona):

$('input[inputName[]=someValue]')

y tampoco hace esto:

$('input[inputName&#91;&#93;=someValue]')

o esto:

$('input["inputName[]"=someValue]')

EDITAR: Como algunos de ustedes han señalado, $('input[inputName=someValue]') nunca funcionaría. Lo que intentaba hacer era: $('input[name=inputName][value=someValue]') . (Pero con [] en el atributo de nombre).




Si el selector está dentro de una variable, el siguiente código puede ser útil:

selector_name = $this.attr('name');
//selector_name = users[0][first:name]

escaped_selector_name = selector_name.replace(/(:|\.|\[|\])/g,'\\$1');
//escaped_selector_name = users\\[0\\]\\[first\\:name\\]

En este caso, prefijamos todos los caracteres especiales con doble barra diagonal inversa.