2011-12-15 107 views
0

我目前有一个json对象,我循环并输出一个链接列表。遍历json数据/同级数据

见琴:http://jsfiddle.net/jasonday/hzZ8j/

各个环节给出基于在JSON的STOREID的ID。

我想要做的,是当一个链接被点击它找到的ID在JSON,然后兄弟元素“otherData”写入#otherDataDiv

我和遍历XML工作,但我我不知道如何用json完成这个任务。

另一个用户以前回答过这个问题,它在测试环境中工作,但由于与beta插件jquery.tmpl.js冲突而无法在网站上工作。我宁愿没有插件就这样做。 (jquery.tmpl.js版本 - http://jsfiddle.net/jasonday/RuEsj/

(将XML是首选的方法吗?)

回答

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

+1

看起来不错。我会在AM中尝试一下。 – Jason 2011-12-15 21:38:40