遍历json数据/兄弟数据

时间:2011-12-15 21:17:33

标签: jquery xml ajax json

我目前有一个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会在这里作为首选方法吗?)

1 个答案:

答案 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