我并没有真正使用jQuery方式设置值&这个下拉列表的文字。我不太确定jQuery的设置方法,但是下拉的参考文献肯定是一个表示下拉列表的jQuery对象。
所以我的变量持有引用(代表)下拉列表的jQuery对象,定义如下:
ddlCar = $('#<%=ddlCar.ClientID %>');
//是的,这是引用ASP.NET控件ID
ddlCar在引用下拉列表方面运行良好......这不是问题。
现在,这里的代码抛出错误和我最初的问题:
for (key in carList)
{
ddlCar[0].options[i].text = carList[key].Name;
ddlCar[0].options[i].value = carList[key].CarId;
i++;
}
错误是:ddlCar[0].options[i] is undefined
请记住,当我使用带有getElementByID的标准JS代码引用下拉列表时,此循环有效,但现在我通过jQuery对象ddlCar引用了下拉列表,所以现在在更改我的ddlCar以反映下拉列表后循环中断了通过jQuery对象(使用$(&#39;#&lt;%= ddlCar.ClientID%&gt;&#39;);`)。
所以现在,我有点试图破解这个工作。我知道现在添加[0]将允许我引用dropdown ref这是一个jquery对象,好像它是一个RAW DOM元素,所以我可以像普通的旧JS语法一样使用它。但由于某种原因,我仍然未定义ddlModel [0] .options [i]。我知道ddlModel [0]是一个有效的对象,因为我在页面的代码的其他部分使用了这个对象:
ddlCar[0].options.length = ObjectCount(carList);
所以我很好奇为什么这个循环首先不起作用。我甚至试过这个:
for (key in carList)
{
ddlCar[0].options[0][i].text = carList[key].Name;
ddlCar[0].options[0][i].value = carList[key].CarId;
i++;
}
我猜最后这是一个由两部分组成的问题。
设置我的下拉列表的文本和值的jQuery方法是什么?我已经有一个jQuery对象参考了dropodown,所以我很自然地会在以后重构这个,而不是在其余的语法中使用JS来设置值。
答案 0 :(得分:0)
for (key in carList)
{
$("<option/>",{text:carList[key].Name,value:carList[key].CarId}).appendTo(ddlCar[0])
i++;
}