it-swarm.com.ru

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

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

<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]'). (Но с [] в атрибуте имени).

173
aidan

В соответствии с документация jQuery , попробуйте это:

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

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

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

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

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

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

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

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

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

75
Pointy

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

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

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

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

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

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

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

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

6
Eric Kigathi