-4

在以下示例中,以下内容不起作用:

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);

为什么会这样/我如何让它工作?

更新:问题出在变量定义的其他地方

4

3 回答 3

3

你错过了你的报价。

var c = $(":input[id=" + cp + "]").val();

应该

var c = $(":input[id='" + cp + "']").val();

虽然这样做可能更简单:

var c = $("#" + cp).val();

由于 ID 属性必须是唯一的,因此无需使用其他说明符。

于 2013-05-25T21:17:01.980 回答
1

试试var c = $(":input#cp").val();。我认为它会解决你的问题。

也可以用单引号试试。我昨天在我的一个项目中使用了完全相同的格式。

于 2013-05-25T21:17:56.067 回答
-1

尝试这个

var contracts4 = $("#" + contractPicker + "").val();

UPD:还有一个,“输入”是一个标签选择器,所以你不需要在输入前面放“:”。“:”符号表示您要选择伪类,而不是元素。

于 2013-05-25T22:02:13.307 回答