使用mootools在页面上的数组迭代中未定义的var错误

时间:2012-11-29 15:59:30

标签: javascript arrays mootools

 var makeModelYearSelect = document.getElementById("<%= MakeModelYearFilterLB.ClientID %>").control;
 var selectedMakeModelYearItems = makeModelYearSelect.get_checkedItems();
 var selectedMakeModelYearItemIds = [];


 for (var index = 0; index < selectedMakeModelYearItems.length; index++) {
   selectedMakeModelYearItemIds.push(selectedMakeModelYearItem[index].get_value(index));
 }

为什么这次回击错误为Microsoft JScript runtime error: 'selectedMakeModelYearItem' is undefined

Mootools不允许我使用简单的for ... in迭代。

我已经看过星期天的6种方式,所以我错过了什么?

2 个答案:

答案 0 :(得分:2)

因为selectedMakeModelYearItem未定义。

selectedMakeModelYearItems不是。

答案 1 :(得分:-1)

也许您尝试在加载页面之前调用此代码。在这种情况下,您尝试访问的select标记不会呈现,也无法从JavaScript访问。你可以试试像

这样的东西
window.addEventListener("load",
(function() {
return function setMakeModelYearFilter() {
        var makeModelYearSelect = document.getElementById("<%= MakeModelYearFilterLB.ClientID %>").control;
        var selectedMakeModelYearItems = makeModelYearSelect.get_checkedItems();
        var selectedMakeModelYearItemIds = [];


for (var index = 0; index < selectedMakeModelYearItems.length; index++) {
   selectedMakeModelYearItemIds.push(selectedMakeModelYearItem[index].get_value(index));
}
    window.removeEventListener('load', setMakeModelYearFilter, false);
}})()
, false);