我目前有一个json对象,我循环并输出一个链接列表。
请参阅小提琴:http://jsfiddle.net/jasonday/hzZ8j/
每个链接都根据json中的storeID给出一个id。
我想要做的是,当点击链接时,它在json中找到id,然后将兄弟元素“otherData”写入#otherDataDiv
我已经使用遍历xml,但我不知道如何使用json完成此任务。
另一位用户之前回答了这个问题,该问题在测试环境中有效,但由于与beta插件 - jquery.tmpl.js冲突而无法在网站上运行。我宁愿在没有插件的情况下这样做。 (jquery.tmpl.js版本 - http://jsfiddle.net/jasonday/RuEsj/)
(xml会在这里作为首选方法吗?)
答案 0 :(得分:1)
我不是在每次点击时重新遍历JSON,而是采用不同的方法,只是减少一些字符串连接,直接创建元素,并使用jQuery的.data()
来关联"otherData"
每个项目的元素:
function GenerateMarkup(states, className) {
$('<ul>', {'class':className}).append($.map(states, function (v,i) {
return $('<li>')
.append($('<h3>',{text:v.stateName}))
.append($.map(v.store, function (value, index) {
return $('<a>',{href:value.storeURL,'class':'storeInactive',id:value.storeID, text:value.storeName})
.data('otherData',value.otherData)
.click(function(){
$('#otherDataDiv').text($(this).data('otherData'));
return false;
})[0];
}))[0];
})).appendTo('#storeList');
}
<强> JSFIDDLE DEMO 强>