我收到的错误是选项未定义。下拉列表显示但由于某些原因无法访问选项
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似乎不对。如果它已启用并重新出现,那么这是一个有效的下拉列表,我应该可以向它添加内容。
答案 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没有任何影响,因此这种方法可能无法给出您期望的结果。