JQuery селектор для входных данных в квадратных скобках в атрибуте имени - PullRequest
173 голосов
/ 02 марта 2010

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

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

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

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

и тоже:

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

или это:

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

РЕДАКТИРОВАТЬ: Как некоторые из вас указали, $('input[inputName=someValue]') никогда не будет работать. Я пытался сделать: $('input[name=inputName][value=someValue]'). (Но с [] в атрибуте имени).

Ответы [ 4 ]

246 голосов
/ 02 марта 2010

Согласно документации jQuery , попробуйте это:

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

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

$('input[name="inputName[]"][value="someValue"]')
75 голосов
/ 02 марта 2010

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

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

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

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

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

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

51 голосов
/ 02 марта 2010

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

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

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

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

$('input[name="inputName[]"][value=someValue]')
6 голосов
/ 11 декабря 2012

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

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

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

...