селектор jQuery для входов с квадратными скобками в атрибуте name
Я пытаюсь выбрать этот элемент, который имеет квадратные скобки в имени атрибута:
<input type="text" name="inputName[]" value="someValue">
Я пробовал это (что не работает):
$('input[inputName[]=someValue]')
и так:
$('input[inputName[]=someValue]')
или такой:
$('input["inputName[]"=someValue]')
EDIT: как некоторые из вас указали,$('input[inputName=someValue]') никогда не будет работать. Что я пытался сделать: $('input[name=inputName][value=someValue]'). (Но с [] в атрибуте name).
4 ответов:
на документация jQuery, попробуйте это:
$('input[inputName\[\]=someValue]')[редактирование] Однако, я не уверен, что это правильный синтаксис селектора. Вы, наверное, хотите:
$('input[name="inputName[]"][value="someValue"]')
вы можете использовать обратную косую черту, чтобы цитировать "смешные" символы в селекторах jQuery:
$('#input\[23\]')для значений атрибутов можно использовать кавычки:
$('input[name="weirdName[23]"]')теперь я немного смущен вашим примером; как именно выглядит ваш HTML? Где, в частности, появляется строка "inputName"?
edit исправлена 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\]в этом случае мы префикс всех специальных символов с двойной обратной косой чертой.
Comments