Селектор jQuery для входов с квадратными скобками в атрибуте name

Я пытаюсь выбрать этот элемент с квадратными скобками в атрибуте name:

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

Я пробовал это (что не работает):

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

и не делает этого:

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

или это:

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

EDIT: Как уже указывали некоторые из вас, $('input[inputName=someValue]') никогда не будет работать. То, что я пытался сделать, было: $('input[name=inputName][value=someValue]'). (Но с [] в атрибуте name).

Ответ 1

В документации jQuery, попробуйте следующее:

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

[EDIT] Однако я не уверен, что правильный синтаксис для вашего селектора. Вероятно, вы хотите:

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

Ответ 2

Вы можете использовать обратную косую черту для цитирования "смешных" символов в ваших селекторах jQuery:

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

Для значений атрибутов вы можете использовать кавычки:

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

Теперь, я немного смущен вашим примером; как выглядит ваш HTML-код? Где появляется строка "inputName", в частности?

редактировать фиксированное бодрость; спасибо @Dancrumb

Ответ 3

Синтаксис селектора атрибутов [name=value], где name - это имя атрибута, а value - значение атрибута.

Итак, если вы хотите выбрать все элементы input с атрибутом name, имеющим значение inputName[]:

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

И если вы хотите проверить два атрибута (здесь: name и value):

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

Ответ 4

Если селектор содержится внутри переменной, может оказаться полезным приведенный ниже код:

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\\]

В этом случае мы префикс всех специальных символов с двойным обратным слэшем.

Ответ 5

Просто разделите его разными цитатами:

<input name="myName[1][data]" value="myValue">

JQuery:

var value = $('input[name="myName[1][data]"]').val();