2014-07-26 202 views
2

我正在显示来自对象数组的数据,但我想过滤结果以便仅显示winner属性具有值的那些对象的name s 1检查对象是否具有特定值的属性

<script> 
$(document).ready(function() { 
    var json = [ 
     {"name":"Name 1","winner":"1"}, 
     {"name":"Name 2","winner":"0"}, 
     {"name":"Name 3","winner":"1"}, 
     {"name":"Name 4","winner":"1"}, 
     {"name":"Name 5","winner":"0"}, 
    ]; 

    var li; 
    for (var i = 0; i < json.length; i++) { 
     li = $('<li/>'); 
     li.append(json[i].name); 
    $('#feed').append(li); 
    } 
}); 
</script> 

HTML应该是这样的(只显示结果时,获胜者是真实的,winner = 1

<ul id="feed" > 
    <li>Name 1</li> 
    <li>Name 3</li> 
    <li>Name 4</li> 
</ul> 
+3

这真的是一个''标签吗? – adeneo

+2

这不是JSON:http://json.org/ –

+0

除了最后一个对象之后的逗号,是的。 –

回答

3

刚刚在环

for (var i = 0; i < json.length; i++) { 
    if (json[i].winner === "1") { 

     $('<li />', {text : json[i].name}).appendTo('#feed'); 

    } 
} 

FIDDLE

+0

谢谢。它的工作 – Azukah

4
添加条件

您可以尝试使用if声明:

for (var i = 0; i < json.length; i++) { 
    if (json[i].winner === '1') { 
     li = $('<li/>'); 
     li.append("<font size='+1'>" + json[i].name + "</font>"); 
     $('#feed').append(li); 
    } 
} 
+0

谢谢。它的工作原理 – Azukah

3

你如果获胜者是等于增加一个if语句来检查,以1:

var json = [ 
     {"name":"Name 1","winner":"1"}, 
     {"name":"Name 2","winner":"0"}, 
     {"name":"Name 3","winner":"1"}, 
     {"name":"Name 4","winner":"1"}, 
     {"name":"Name 5","winner":"0"}, 
    ]; 

    var li; 
    for (var i = 0; i < json.length; i++) { 
    if(json[i].winner == "1"){ //add this 
     li = $('<li/>'); 
     li.append("<font size='+1'>" + json[i].name + "</font>"); 
    $('#feed').append(li); 
    } 
} 

fiddle

+0

谢谢。它的工作原理 – Azukah

3

试试这个:

var ul = $('ul#feed'); 
    for (var i = 0; i < json.length; i++) { 
     if (json[i].winner == 1) { 
      ul.append("<li>" + json[i].name + "</li>"); 
     } 
    } 

Working fiddle.

+0

谢谢。这样可行。 – Azukah

相关问题