Name属性に角かっこがあるこの要素を選択しようとしています:
<input type="text" name="inputName[]" value="someValue">
私はこれを試しました(動作しません):
$('input[inputName[]=someValue]')
また、これも行いません:
$('input[inputName[]=someValue]')
またはこれ:
$('input["inputName[]"=someValue]')
編集:あなたが指摘したように、$('input[inputName=someValue]')
は機能しません。私がやろうとしていたことは:$('input[name=inputName][value=someValue]')
。 (ただし、name属性に[]
を使用)。
jQueryドキュメント に従って、これを試してください:
$('input[inputName\\[\\]=someValue]')
[編集]しかし、それがあなたのセレクターの正しい構文かどうかはわかりません。おそらくあなたは:
$('input[name="inputName[]"][value="someValue"]')
バックスラッシュを使用して、jQueryセレクターで「面白い」文字を引用できます。
$('#input\\[23\\]')
属性値には、引用符を使用できます。
$('input[name="weirdName[23]"]')
さて、私はあなたの例に少し混乱しています。 HTMLは正確にどのように見えますか?特に、文字列「inputName」はどこに表示されますか?
編集固定されたbogosity;ありがとう@Dancrumb
属性セレクターの構文は[name=value]
です。ここで、name
は属性名で、value
は属性値です。
そのため、属性input
が値inputName[]
を持つすべてのname
要素を選択する場合:
$('input[name="inputName[]"]')
また、2つの属性(ここではname
とvalue
)を確認する場合:
$('input[name="inputName[]"][value=someValue]')
セレクターが変数に含まれている場合、以下のコードが役立つ場合があります。
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\\]
この場合、すべての特殊文字の前に二重バックスラッシュを付けます。
異なる引用符で区切るだけです:
<input name="myName[1][data]" value="myValue">
JQuery:
var value = $('input[name="myName[1][data]"]').val();