Javascript Array ID - PullRequest
       2

Javascript Array ID

1 голос
/ 23 февраля 2012

У меня есть HTML-страница, содержащая элементы, к которым мне нужно получить доступ с помощью JQuery. Вот пример того, как идентифицируются элементы формы:

<div id="nItemID[766]Line" class="formLine ">
   <span id="nItemID[766]Label" class="formLabel alignTop">Téléphone:</span>
   <input id="nItemID[766]Field" class="formField" type="text" maxlength="11" value="" name="nItemID[766]" style="width: 300;">
</div>

Когда я пытаюсь показать идентификатор определенного элемента, он говорит мне: nItemID [766] Метка, например. Но когда я набираю этот код, он ничего не находит ...

alert( $("#nItemID[766]Field").val() );

Может ли кто-нибудь помочь мне с доступом к этим конкретным элементам?

Спасибо!

Ответы [ 4 ]

5 голосов
/ 23 февраля 2012

Вам придётся убрать квадратные скобки с обратной косой чертой:

alert($('#nItemID\\[766\\]Field').val());

Немного сомнительно иметь подобные значения "id", но я был в ситуациях, когда онитрудно избежать.

edit - обратите внимание, что вам нужно две обратные косые черты в строке, чтобы интерпретатор селектора jQuery мог «видеть» их;то есть вам нужно оставить одну обратную косую черту в строке, и способ сделать это в JavaScript - удвоить обратную косую черту Я ненавижу объяснять, что .

редактировать снова - Вот что говорит черновик HTML 5 об атрибутах "id":

3.2.3.1 Атрибут id

Атрибут id определяет уникальный идентификатор (ID) своего элемента.,[DOMCORE]

Значение должно быть уникальным среди всех идентификаторов в домашнем поддереве элемента и должно содержать хотя бы один символ.Значение не должно содержать пробелов.

Уникальный идентификатор элемента может использоваться для различных целей, в частности, в качестве способа ссылки на конкретные части документа с использованием идентификаторов фрагментов, в качестве способа нацеливанияэлемент при написании сценариев, а также способ стилизации определенного элемента из CSS.

Идентификаторы - это непрозрачные строки.Особые значения не должны быть получены из значения атрибута id.

Нет правил относительно значений атрибутов "id", другими словами, кроме того, что они не могут содержать пробелы.

0 голосов
/ 23 февраля 2012

Попробуйте вместо document.getElementById("nItemID[766]Field").value. Очевидно, jQuery не поддерживает идентификаторы с фигурными скобками.

0 голосов
/ 23 февраля 2012

Ваши ID недействительны, см. это .

0 голосов
/ 23 февраля 2012

Это недопустимый HTML.[ и ] не являются действительными символами в идентификаторах.Вы можете использовать их в именах, как вы уже используете в элементе ввода, но не в идентификаторах.

Вы должны изменить свои идентификаторы на что-то вроде nItemID_766_Field.Тогда это будет действительный идентификатор, и вы можете легко изменить номер для каждого nItem.

Редактировать

Как указал Пойнти, он действителен в HTML 5. Так чтовам не нужно менять свои идентификаторы, если вы не пытаетесь соответствовать HTML 4.

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