2010-09-21 123 views
0

我已經分配了內部數組數組變量的HREF鏈接即jQuery的點擊裏面的循環

var encounter_names = new Array(); 
encounters.encountersDB.each(function(encounter) { encounter_names.push(new Array(encounter.key, encounter.name))}) 

這是我下面

for (var i = 0; i < encounter_names.length; i++) { 
    window['li' + i] = $("li[key='" + encounter_names[i][0] + "']") 
    window['li' + i] = $("<li key='" + encounter_names[i][0] + "' class='list'><a class='arrow_'+ encounter_names[i][0] +'" + encounter_names[i][0] + "' href='#'>" + encounter_names[i][1] + "</a></li>") 
    $('.arrow_' + encounter_names[i][0] + '').click(function (event) { 
     encounters.show(window['key' + i]); 
     event.preventDefault(); 
    }) 
    encounters_list.append(encounter_names[i][0]) 
} 

提到的循環語句當我點擊一個href鏈接我在控制檯日誌中得到以下錯誤:

TypeError: Result of expression 'encounter_names[i]' [undefined] is not an object.

任何建議總是歡迎。

+0

對不起instaed我應該encounter_names – 2010-09-21 14:10:25

+0

難道我的編輯反映你的意思? – 2010-09-21 14:12:38

+0

在第一個代碼部分中,您將名爲「遭遇」的值添加到數組encounter_names中。在第二個代碼段中,變量「list_of_encounters」來自哪裏? - 沒關係,你在我打字的時候更新了。 – 2010-09-21 14:14:07

回答

1

我認爲encounters.encountersDB是一個對象,而不是一個html對象?
問題是這樣的:每個函數都有兩個參數:當前索引和元素。所以,你只需要此更改爲:list_of_encounters的

var encounter_names = []; // short form for new Array() 
$.each(encounters.encountersDB, function(index, encounter) { 
    encounter_names.push([encounter.key, encounter.name]); 
})