селектор jQuery для входов с квадратными скобками в атрибуте name
Я пытаюсь выбрать этот элемент, который имеет квадратные скобки в имени атрибута:
<input type="text" name="inputName[]" value="someValue">
Я пробовал это (что не работает):
$('input[inputName[]=someValue]')
и так:
$('input[inputName[]=someValue]')
или такой:
$('input["inputName[]"=someValue]')
EDIT: как некоторые из вас отметили,$('input[inputName=someValue]')
никогда не будет работать. Я пытался сделать вот что:--5-->. (Но с []
в атрибуте name).
4 ответов
на документация 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
элементы с атрибутом name
стоимостью inputName[]
:
$('input[name="inputName[]"]')
и если вы хотите проверить наличие двух атрибутов (здесь: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,'\');
//escaped_selector_name = users\[0\]\[first\:name\]
в этом случае мы префикс всех специальных символов с двойной обратной косой чертой.