在以下示例中,以下内容不起作用:
var contracts1 = $(":input[id=" + contractPicker + "]").val();
console.log(contracts1);
var contracts2 = $(":input[id='" + contractPicker + "']").val();
console.log(contracts2);
var contracts3 = $(":input#contractPicker").val();
console.log(contracts3);
var contracts4 = $("#" + contractPicker).val();
console.log(contracts4);
// EVERYTHING above gives me "undefined"
var contracts5 = $(":input[id='ctl00_m_g_fabbe6d4_0201_49c8_ace5_ac53fc7a9276_ctl00_ctl05_ctl00_ctl00_ctl00_ctl04_ctl00_ctl00_MultiLookupPicker']").val();
console.log(contracts5);
为什么会这样?/我如何让它发挥作用?
更新: 问题出在变量定义的其他地方
答案 0 :(得分:3)
你错过了报价。
var c = $(":input[id=" + cp + "]").val();
应该是
var c = $(":input[id='" + cp + "']").val();
虽然这样做可能更简单:
var c = $("#" + cp).val();
由于ID属性必须是唯一的,因此不需要使用其他说明符。
答案 1 :(得分:1)
试试var c = $(":input#cp").val();
。我认为它会解决你的问题。
也可以用单引号尝试。我昨天在我的一个项目中使用了完全相同的格式。
答案 2 :(得分:-1)
试试这个
var contracts4 = $("#" + contractPicker + "").val();
UPD:还有一个,“input”是一个标签选择器,所以你不需要在输入前加上“:”。 “:”符号表示您要选择伪类,但不是元素。