【问题标题】:traverse json data / sibling data遍历json数据/兄弟数据
【发布时间】:2011-12-15 21:17:33
【问题描述】:

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

【问题讨论】:

    标签: jquery xml ajax json


    【解决方案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

    【讨论】:

    • 我已经让它满足我的需求 - 谢谢!不确定谁投了你一票,如果那个人愿意发表评论,我很想知道为什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2021-08-02
    相关资源
    最近更新 更多