如何使用jquery访问id为[]的元素

时间:2014-02-04 12:06:53

标签: javascript jquery

在jsp文件中,我构建了一个只读输入元素列表。这种元素的一个例子如下:

<input type="text" 
       id="myElement[0]" 
       size="12" 
       maxlength="20" 
       readonly="readonly" 
       name="myElement[0]" 
       value="Some Value"

<input type="text" 
       id="myElement[1]" 
       size="12" 
       maxlength="20" 
       readonly="readonly" 
       name="myElement[1]" 
       value="Another Value"

我现在尝试使用以下代码访问第一个元素的值:

value = $("#myElement[0]").val();

不幸的是,价值未定义。当我检查$("#myElement[0]")时,这似乎是一个非空对象。但由于某种原因,价值未定义。

是否有不同的方式来访问此元素。

谢谢

5 个答案:

答案 0 :(得分:4)

您可以使用单引号括起来使用属性选择器匹配。

<强> Live Demo

value = $("[id='myElement[0]']").val();

您还可以使用\\

转义方括号
value = $("#myElement\\[0\\]").val()

答案 1 :(得分:0)

使用\转义它们 - 因为\本身是一个转义字符,您需要使用\\

value = $("#myElement\\[0\\]").val();

演示:Fiddle

答案 2 :(得分:0)

您需要转义方括号以选择语法。

然后,您需要转义JavaScript字符串文字语法的转义字符。

$("#myElement\\[0\\]")

答案 3 :(得分:0)

您需要转义[]

 value = $("#myElement\\[0\\]").val();

来自DOCs

  

使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\\。

OR

你可以Attribute Equals Selector [name="value"]

value = $("[id='myElement[0]']").val();

答案 4 :(得分:0)

您需要使用escape:

$("#myElement\\[0\\]")

这是通过使用两个反斜杠转义Selectors page of the jQuery documentation上列出的所有CSS元字符来实现的。

相关问题