下拉列表的未定义选项

时间:2011-10-31 07:52:59

标签: jquery

我收到的错误是选项未定义。下拉列表显示但由于某些原因无法访问选项

dropdown.options未定义 [打破此错误] dropdown.options.length = ObjectCount(equtypeList);

$(dropdown).show(); // this works

if (ObjectCount(equipmentTypeList) > 1) 
{
    $(dropdown).attr("disabled", false); //this works
    dropdown.options.length = ObjectCount(equipmentTypeList);  //bombs out here saying options is null...wtf??
    AddDropdownOption("-- Select Equipment Type--", "-1", dropdown.id);
}

所以我没理解。如果我重新显示一个dropdow,那么为什么option属性不可访问(不可用因为它为null)。显然它就在那里,因为我可以看到下拉菜单重新出现在页面上......但是没有选项属性?这对于options属性我会得到null似乎不对。如果它已启用并重新出现,那么这是一个有效的下拉列表,我应该可以向它添加内容。

1 个答案:

答案 0 :(得分:1)

那是因为dropdown是一个jQuery对象,是通过调用$()获得的。 jQuery对象不公开options属性,底层DOM元素可以。

您可以使用索引语法或get()方法来获取DOM元素:

dropdown[0].options.length = ObjectCount(equipmentTypeList);
// or
dropdown.get(0).options.length = ObjectCount(equipmentTypeList);

您还可以构建另一个包含选项的jQuery对象:

$("option", dropdown).length = ObjectCount(equipmentTypeList);
// or
dropdown.find("option").length = ObjectCount(equipmentTypeList);

但是,分配jQuery对象的length属性对DOM没有任何影响,因此这种方法可能无法给出您期望的结果。