2014-10-27 48 views
1

我有一个表从JSON文件填充,一切工作到目前为止,但我试图跳过名为“member_count”的键值为0的对象。这可能吗?如果key的值为0,如何跳过JSON文件中的对象?

这是代码:

$mygroupstable = $('#my_groups_table'); 
    $.ajax({ 
    url: 'http://testingsite.com/jsondata/mygroups.json', 
    dataType:'json', 
    success:function(data){ 
     $.each(data.groups, function(key, val){ 
      $mygroupstable.append('<tr><td><input type="checkbox" class="groupselector" member_count="' + val.member_count + '" value="' + val.value + '" id="' + val.id + '" name="' + val.name + '" group_name="' + val.group_name + '" /></td><td style="width:10px;"></td><td><label for="' + val.id + '">' + val.group_name + '</label></td></tr>'); 
     }) 
    }, 
}); 

JSON文件看起来是这样的:

{ 
"groups": [ 
    { 
     "id": "data1", 
     "member_count": "1", 
     "value": "255", 
     "name": "data[]", 
     "group_name": "Group 1" 
    }, 
    { 
     "id": "data2", 
     "member_count": "5", 
     "value": "256", 
     "name": "data[]", 
     "group_name": "Group 2" 
    }, 
    { 
     "id": "data3", 
     "member_count": "4", 
     "value": "257", 
     "name": "data[]", 
     "group_name": "Group 3" 
    }, 
    { 
     "id": "data4", 
     "member_count": "6", 
     "value": "258", 
     "name": "data[]", 
     "group_name": "Group 4" 
    }, 
    { 
     "id": "data5", 
     "member_count": "0", 
     "value": "259", 
     "name": "data[]", 
     "group_name": "Group 5" 
    } 
]} 

在这种情况下5组不应该被追加到表。任何帮助深表感谢!!

+0

如果追加之前添加来检查值的关键,如果关键是MEMBER_COUNT? – morissette 2014-10-27 20:49:19

+0

由于我们迭代一个数组,我会使用'index'或'i',所以我不会迷惑自己。我通常离开'key'进行对象迭代。 – PeterKA 2014-10-27 21:02:56

回答

1

试试这个:

var $mygroupstable = $('#my_groups_table'); 
var url = 'http://testingsite.com/jsondata/mygroups.json.json'; 
$.getJSON(url, function(data) { 
    $.each(data.groups, function(key, val) { 
     if (val.member_count !== "0") { 
      $mygroupstable.append('<tr><td><input type="checkbox" class="groupselector" member_count="' + val.member_count + '" value="' + val.value + '" id="' + val.id + '" name="' + val.name + '" group_name="' + val.group_name + '" /></td><td style="width:10px;"></td><td><label for="' + val.id + '">' + val.group_name + '</label></td></tr>'); 
     } 
    }); 
}); 
+0

这工作!谢谢!!! – 2014-10-27 21:03:41

+0

不客气。让我知道你是否需要任何帮助:) – CodeGodie 2014-10-27 21:05:18

0

我会测试如果该键是成员计数,并且该值不是0添加表后。

$mygroupstable = $('#my_groups_table'); 
    $.ajax({ 
    url: 'http://testingsite.com/jsondata/mygroups.json', 
    dataType:'json', 
    success:function(data){ 
     $.each(data.groups, function(key, val){ 
      if (val.member_count !== 0) { 
       $mygroupstable.append('<tr><td><input type="checkbox" class="groupselector" member_count="' + val.member_count + '" value="' + val.value + '" id="' + val.id + '" name="' + val.name + '" group_name="' + val.group_name + '" /></td><td style="width:10px;"></td><td><label for="' + val.id + '">' + val.group_name + '</label></td></tr>'); 
      } 
     }) 
    }, 
}); 
+0

'和'不是有效的运算符** AND **'key'实际上是一个整数,因为它是一个迭代的数组。 @morissette? – PeterKA 2014-10-27 21:04:51

+0

那么&& - 太多的语言内容切换:) – morissette 2014-10-27 21:05:17

+0

这仍然不会工作,因为'键'(我会使用'索引'代替)从'0'一直运行到'arr.length-1'。 – PeterKA 2014-10-27 21:07:25

1

类似检查成员数是否为零?

$mygroupstable = $('#my_groups_table'); 
    $.ajax({ 
    url: 'http://testingsite.com/jsondata/mygroups.json', 
    dataType:'json', 
    success:function(data){ 
     $.each(data.groups, function(key, val){ 
      if(val.member_count !== 0){ 
       $mygroupstable.append('<tr><td><input type="checkbox" class="groupselector" member_count="' + val.member_count + '" value="' + val.value + '" id="' + val.id + '" name="' + val.name + '" group_name="' + val.group_name + '" /></td><td style="width:10px;"></td><td><label for="' + val.id + '">' + val.group_name + '</label></td></tr>'); 
      } 
     }) 
    }, 
}); 
相关问题