我有一个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>
当我尝试显示特定元素的ID时,它会告诉我:nItemID [766] Label,例如。但是当我输入该代码时,它找不到任何东西......
alert( $("#nItemID[766]Field").val() );
有人可以帮助我了解访问这些特定元素的方法吗?
谢谢!
答案 0 :(得分:5)
你必须用反斜杠转义方括号:
alert($('#nItemID\\[766\\]Field').val());
拥有像这样的“id”值有点疑问,但我一直处于难以避免的情况。
编辑 - 请注意,字符串中需要两个反斜杠,以便jQuery选择器解释器可以“看到”它们;也就是说,你需要在字符串中留下一个反斜杠,而在JavaScript中这样做的方法是将反斜杠加倍我讨厌解释。
再次编辑 - 以下是关于“id”属性的HTML 5草案的内容:
3.2.3.1 id属性
id属性指定其元素的唯一标识符(ID)。 [DOMCORE]
该值必须在元素的主子树中的所有ID中唯一,并且必须至少包含一个字符。该值不得包含任何空格字符。
元素的唯一标识符可用于各种目的,最明显的是作为使用片段标识符链接到文档的特定部分的方法,作为在编写脚本时定位元素的方法,以及作为样式的方式来自CSS的特定元素。
标识符是不透明的字符串。不应从id属性的值派生特定含义。
没有关于“id”属性值的规则,换句话说,除了它们不能包含空格之外。
答案 1 :(得分:0)
这是无效的HTML。 [
和]
在ids中不是有效字符。你可以像在输入元素上那样使用它们,但不能在ids中使用它们。
您应该将您的ID更改为nItemID_766_Field
。然后它将是一个有效的id,您可以轻松地更改每个nItem的数字。
修改强>
Pointy指出它在HTML 5中有效。因此,除非您尝试使用HTML 4,否则不需要更改您的ID。
答案 2 :(得分:0)
您的ID无效,请参阅this。
答案 3 :(得分:0)
请改为document.getElementById("nItemID[766]Field").value
。显然jQuery不支持带括号的id。