我有两个隐藏的输入字段:
<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?
答案 0 :(得分: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]']");
答案 1 :(得分:2)
你必须逃避括号:
$( '#institut\\[0\\]' ).val()
现场演示: http://jsfiddle.net/Qsagn/
括号是CSS中的特殊字符 - 它们定义属性选择器。你需要双重转义括号。单个转义\[
是不够的,因为\
字符是字符串文字中的特殊字符,因此您需要\\
才能转义\
字符,以便它被解释为文字字符。
答案 2 :(得分:1)
您始终可以使用document.getElementsByName("institut[0]")[0].value
。