jQuery - помощь, необходимая для селектора идентификаторов, когда id является обозначением типа массива - PullRequest
2 голосов
/ 23 ноября 2010

У меня есть элемент ввода, определенный следующим образом:

<input type="checkbox" name="custom_15[1]" id="custom_15[1]" value="1" />

Когда я пытался использовать селектор $("#custom_15[1]"), он не работал.Тогда как document.getElementById("custom_15[1]") сработало.

Что я здесь не так делаю?

Спасибо!

Ответы [ 2 ]

9 голосов
/ 23 ноября 2010

Во-первых, атрибут id не должен содержать квадратных скобок. Это просто не верно. Он может содержать буквы, цифры, подчеркивания, дефисы, двоеточия и точки.

В ответе на этот вопрос есть подсказка, что у jquery есть проблемы с точками и двоеточиями:

Какие допустимые значения для атрибута id в HTML?

Так что попробуйте перейти на действительные идентификаторы. Если вы не можете, используйте правильное экранирование:

$("#custom_15\\[1\\]")
2 голосов
/ 23 ноября 2010

Правда, у вас не может быть квадратных скобок.

У вас должно быть одинаковое имя для полей "name" и "id"?

Хуже того, вы всегда можете добавить уникальный класс к своему входу и найти его в JS через него.то есть

<input type="checkbox" name="custom_15[1]" class="test" id="custom_15[1]" value="1" />

И затем в вашем JS используйте это

$(".test")

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...