循环设置下拉列值 - jquery对象引用错误

时间:2011-11-07 04:55:18

标签: jquery

我并没有真正使用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来设置值。

1 个答案:

答案 0 :(得分:0)

for (key in carList) 
{
    $("<option/>",{text:carList[key].Name,value:carList[key].CarId}).appendTo(ddlCar[0])    
    i++;
}