J'essaie de sélectionner cet élément qui a des crochets dans l'attribut name:
<input type="text" name="inputName[]" value="someValue">
J'ai essayé ceci (qui ne marche pas):
$('input[inputName[]=someValue]')
et ceci non plus:
$('input[inputName[]=someValue]')
ou ca:
$('input["inputName[]"=someValue]')
EDIT: Comme certains d'entre vous l'ont fait remarquer, $('input[inputName=someValue]')
ne fonctionnerait jamais. Ce que j'essayais de faire était: $('input[name=inputName][value=someValue]')
. (Mais avec []
Dans l'attribut name).
D'après le documentation jQuery , essayez ceci:
$('input[inputName\\[\\]=someValue]')
[EDIT] Cependant, je ne suis pas sûr que ce soit la bonne syntaxe pour votre sélecteur. Vous voulez probablement:
$('input[name="inputName[]"][value="someValue"]')
Vous pouvez utiliser une barre oblique inverse pour citer des caractères "amusants" dans vos sélecteurs jQuery:
$('#input\\[23\\]')
Pour les valeurs d'attributs, vous pouvez utiliser des guillemets:
$('input[name="weirdName[23]"]')
Maintenant, je suis un peu confus par votre exemple; à quoi ressemble exactement votre code HTML? Où la chaîne "inputName" apparaît-elle, en particulier?
edit bogosité fixe; merci @Dancrumb
La syntaxe de sélecteur d'attribut est [name=value]
où name
est le nom de l’attribut et value
, sa valeur.
Donc, si vous voulez sélectionner tous les éléments input
avec l'attribut name
ayant la valeur inputName[]
:
$('input[name="inputName[]"]')
Et si vous voulez vérifier deux attributs (ici: name
et value
):
$('input[name="inputName[]"][value=someValue]')
Si le sélecteur est contenu dans une variable, le code ci-dessous peut être utile:
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\\]
Dans ce cas, nous préfixons tous les caractères spéciaux avec une double barre oblique inversée.
Séparez-le simplement avec des citations différentes:
<input name="myName[1][data]" value="myValue">
JQuery:
var value = $('input[name="myName[1][data]"]').val();