селектор 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).

671   4  

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

    Ничего не найдено.