首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jquery每个Json对象

Jquery每个Json对象
EN

Stack Overflow用户
提问于 2009-10-14 22:32:49
回答 3查看 84.4K关注 0票数 24

我有一个从服务返回的结果集,它给出了下面的json

代码语言:javascript
复制
{
    "ThreadCount":61,
    "GroupList":[
        {"userName":"KLT","count":2687},
        {"userName":"KCameron","count":718},
        {"userName":"IRG","count":156},{"userName":"JLB","count":123},{"userName":"HML","count":121},{"userName":"SMN","count":99},{"userName":"TBridges","count":68},{"userName":"ARF","count":65},{"userName":"MarkGreenway","count":61},{"userName":"SMC","count":55},{"userName":"EMD","count":52},{"userName":"PKP","count":41},{"userName":"KBounds","count":36},{"userName":"MAN","count":33},{"userName":"LAC","count":17},{"userName":"EPS","count":17},{"userName":"CAN","count":7},{"userName":"MAJ","count":3},{"userName":"CPC","count":2}]
}

我想使用Jquery (或javascript )将threadCount放在一个div中,并将用户名和计数添加到一个表中

代码语言:javascript
复制
success: function(result) {
    $("#Unfiled").html(result.ThreadCount);
    $.each(result.GroupList, function(user) {
        $('#myTable > tbody').append(
            '<tr><td>'
            + user.userName
            + '</td><td>'
            + user.count +
            '</td></tr>'
        );
    });
}

由于某种原因,我的桌子里什么也没拿到。

顺便说一下,我的HTML在这里:

代码语言:javascript
复制
 <table>
    <tr>
        <td>
            Unfiled Emails:
        </td>
        <td id="Unfiled">
            -1
        </td>
    </tr>
    <tr>
        <td colspan="2">
            <table id="myTable" border="2" cellpadding="3" cellspacing="3">
            </table>
        </td>
    </tr>
</table>

我知道我错过了一些简单的东西。

提前感谢您的帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-14 22:52:26

在提供给each的函数中,this引用当前元素。试试这个:

代码语言:javascript
复制
$.each(result.GroupList, function() {
    $('#myTable > tbody').append(
        '<tr><td>'
        + this.userName
        + '</td><td>'
        + this.count +
        '</td></tr>'
    );
});

如果这对您不起作用,考虑到没有tbody元素,它可能与以下内容有关:$('#myTable > tbody')。我相信Internet Explorer会自动创建一个,但其他浏览器不会。查看$.support.tbody,看看浏览器是否会为你做这件事。

票数 51
EN

Stack Overflow用户

发布于 2009-10-14 22:51:21

我注意到您的表实际上没有tbody元素。这可能是你问题的一部分。

代码语言:javascript
复制
$('#myTable > tbody').append.....

<table id="myTable" border="2" cellpadding="3" cellspacing="3">
</table>

我还建议您在$.each()循环中创建一个字符串,然后在each循环之后执行以下操作:

代码语言:javascript
复制
$('#myTable > tbody').html(string);

这将减少每次迭代数组时追加的开销。

票数 3
EN

Stack Overflow用户

发布于 2009-10-15 06:39:53

当我使用$.each()时,我使用了一个函数(i,item),其中i是表示索引的整数,item是实际的对象。这就是the documentation显示它是如何完成的--方法被描述为函数回调(indexInArray,valueOfElement)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1569372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档