jQuery .val()在复杂id处返回undefined

Lar*_*ars 4 jquery undefined

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

<input type="hidden" name="institut" id="institut" value="blablub" />
<input type="hidden" name="institut[0]" id="institut[0]" value="moreblablub" />
Run Code Online (Sandbox Code Playgroud)

我有这个调试代码:

console.log("#institut: " + $("#institut").val());
console.log("#institut[0]: " + $("#institut[0]").val());
Run Code Online (Sandbox Code Playgroud)

我得到这个控制台输出:

#institut: blablub
#institut[0]: undefined
Run Code Online (Sandbox Code Playgroud)

我试图用反斜杠逃避方括号,但这并没有改变任何东西.有没有办法获得复杂的ID?

Nea*_*eal 8

应该为id使用非字母数字字符.

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

var element = document.getElementById("institut[0]");
var $element = $(element);
Run Code Online (Sandbox Code Playgroud)

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

要么

var $element = $("#institut\\[0\\]");
Run Code Online (Sandbox Code Playgroud)

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

甚至:

var $element = $("[id='institut[0]']");
Run Code Online (Sandbox Code Playgroud)

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