Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jquery Each Json Object

Tags:

I have a result set returning from a service that gives me the following json

{     "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}] } 

I want to use Jquery (or javascript to put the threadCount in one div and add the usernames and counds to a Table

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>'         );     }); } 

For some reason I am not getting anything in my table...

By the way my HTML is here :

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

I know i am missing something simple...

Thanks for your help in advance

like image 818
MarkKGreenway Avatar asked Oct 14 '09 22:10

MarkKGreenway


1 Answers

Inside the function provided to each, this refers to the current element. Try this:

$.each(result.GroupList, function() {     $('#myTable > tbody').append(         '<tr><td>'         + this.userName         + '</td><td>'         + this.count +         '</td></tr>'     ); }); 

If that doesn't work for you, it may have something to do with this: $('#myTable > tbody'), considering that there is no tbody element. I believe that Internet Explorer will automatically create one but the other browsers won't. Check $.support.tbody to see if the browser does that for you.

like image 151
nickf Avatar answered Oct 03 '22 09:10

nickf