4

我有两个隐藏的输入字段:

<input type="hidden" name="institut" id="institut" value="blablub" />
<input type="hidden" name="institut[0]" id="institut[0]" value="moreblablub" />

我有这个调试代码:

console.log("#institut: " + $("#institut").val());
console.log("#institut[0]: " + $("#institut[0]").val());

我得到这个控制台输出:

#institut: blablub
#institut[0]: undefined

我尝试用反斜杠转义方括号,但这并没有改变任何东西。有没有办法获取复杂的 ID?

4

3 回答 3

8

应该使用非字母数字字符作为 id。

但如果你这样做,你可以这样做:

var element = document.getElementById("institut[0]");
var $element = $(element);

演示:http: //jsfiddle.net/maniator/sWnJN/

或者

var $element = $("#institut\\[0\\]");

演示:http: //jsfiddle.net/maniator/sWnJN/1/

甚至:

var $element = $("[id='institut[0]']");

演示:http: //jsfiddle.net/maniator/sWnJN/2/

于 2012-08-20T13:22:14.637 回答
2

您必须转义括号:

$( '#institut\\[0\\]' ).val()

现场演示:http: //jsfiddle.net/Qsagn/

括号是 CSS 中的特殊字符——它们定义了属性选择器。您需要对括号进行双重转义。单个转义\[是不够的,因为该\字符是字符串文字中的特殊字符,因此您需要\\对字符进行转义\,以便将其解释为文字字符。

于 2012-08-20T13:21:57.457 回答
1

您可以随时使用document.getElementsByName("institut[0]")[0].value.

于 2012-08-20T13:21:13.917 回答