在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]")
时,这似乎是一个非空对象。但由于某种原因,价值未定义。
是否有不同的方式来访问此元素。
谢谢
答案 0 :(得分:4)
您可以使用单引号括起来使用属性选择器匹配。
<强> Live Demo 强>
value = $("[id='myElement[0]']").val();
您还可以使用\\
value = $("#myElement\\[0\\]").val()
答案 1 :(得分:0)
答案 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元字符来实现的。