我已經創建了一些帶有一些虛擬屬性的數組對象,我也已經動態創建了一些我想附加點擊處理程序的列表項。當點擊一個列表項時,我想使用設置的模板在#container中顯示適當的數據。我假設我可以使用for循環的動態列表項的索引,以及如何使用它來顯示正確的對象屬性?如果你能告訴我我哪裏出了問題,那很好,對不起,但我已經迷失了方向。如何遍歷元素並使用索引號來呈現相對數組對象的屬性?
$(document).ready(function() {
var data = [
{
name: 'kyle',
age: 23,
sex: 'male'
}, {
name: 'james',
age: 19,
sex: 'male'
}, {
name: 'catrina',
age: 28,
sex: 'female'
}];
var template = $('#template').html();
// Links created dynamically
for (var i = 0; i < 3; i++) {
var link = '<li>Link ' + i + '</li>';
$('#links').append(link);
}
// When li is clicked show related data properties, li[0] = data[0], li[1] = data[1] ...
$('li', '#links').live('click', function (e) {
$.each(data, function (index, value) {
$('#container').append(data.name[i], data.age[i], data.sex[i]);
});
$('#container').html(data);
});
});
代碼可以在這裏找到http://jsbin.com/otirax/6/edit
感謝這個,有困難IM結合來自data-attribute的新索引號與要輸出屬性的對象。你能告訴我哪裏出錯了:$('#links')。on('click','li',function(e){var。 $ .each(data,function(idx,obj){var age = template.replace(/ name/ig,obj [index] .name) .replace(/ age/ig,obj [index]。年齡) .replace(/ sex/ig,obj [index] .sex); $('#container')。html(temp); }); – styler 2012-03-12 23:41:26
@Styler - 查看我的最新編輯 – jfriend00 2012-03-12 23:53:19
@Styler - 假設你只想從'data'數組中的一個項目,你不想使用'.each()',你只想使用'data [index]'。將來,你不能真的把多行代碼放在註釋中,所以最好將它添加到你的問題中,並將其格式化爲代碼然後引用它從評論。 – jfriend00 2012-03-13 00:32:58