从json喂养div

时间:2013-04-15 07:05:56

标签: jquery

我尝试每隔60秒从json文件中提取2个div .totalmembers.totalcomm

json文件看起来像这样,{ "members": { "data": [ { "TotalMembers": 14 } ] }, "communities": { "data": [ { "TotalCommunities": 10 } ] } }

我在这里做错了什么?

    $(function FeedTicker() {
        $.ajax({
            type: "GET",
            url: "default.cs.asp?Process=ViewStats",
            dataType: 'json',
            success: function(data) {
                if (index == "members") {
                    $(".totalmembers").html(data.totalmembers);

                } else if (index == "communities") {
                    $(".totalcomm").html(data.totalcommunities);
                }
            $('.totalmembers').ajaxSuccess(function(){
                $(this).ticker({
                    pauseOnItems: 6000, 
                    displayType: 'fade',
                    controls: false, 
                    titleText: ''
                });
            })
            $('.totalcomm').ajaxSuccess(function(){
                $(this).ticker({
                    pauseOnItems: 6000, 
                    displayType: 'fade',
                    controls: false, 
                    titleText: ''
                });
            })
            }
        })
    });

2 个答案:

答案 0 :(得分:1)

一种选择是修改您的JSON。像{ totalmembers: 109, totalcommunities : 3}这样的东西。如果您希望它在不修改JS的情况下工作,那就是它的样子。

另一个选择是修改你的JS。将您的成功回调更改为:

function(data) {
  if (index == "members") {
    $(".totalmembers").html(data.members.data[0].TotalMembers);
  } else if (index == "communities") {
    $(".totalcomm").html(data.communities.data[0].TotalCommunities);
  }
}

我认为将ajaxSuccess注册转移到成功回调之外的某个位置也是一个好主意。目前,每次ajax请求成功时,您的代码都会重新注册div。

答案 1 :(得分:0)

data.totalmembersdata.totalcommunities可能是List<something>

如果是,则必须生成HTML格式以提供div

即。 :data.totalmembers

toatalmebers的foreach成员

<table><tr><td> totalmembers.name </td></tr></table>....