У меня есть вход с атрибутом имени:
<input type="text" name="data[foo][bar]" />
как выбрать этот элемент?
Я пытался $("input[name=data[foo][bar]]"), но в духе.
$("input[name=data[foo][bar]]")
Добавьте кавычки к значению атрибута, в противном случае вы получите конфликтующие квадратные скобки и ошибку разбора:
$("input[name='data[foo][bar]']")
Используйте
$("input[name=data\\[foo\\]\\[bar\\]]")
В документации сказано:
Если вы хотите использовать любой из метасимволов (например,! "# $% & '() * +,. / :; <=>? @ [] ^` {|} ~) В качестве литерала часть имени, вы должны экранировать символ двумя обратными слешами: \. Например, если у вас есть элемент с id = "foo.bar", вы можете использовать селектор $ ("# foo \ .bar").
http://api.jquery.com/category/selectors/
$('input[name="data[foo][bar]"]')
http://api.jquery.com/attribute-equals-selector/ для получения дополнительной информации