2012-01-25 5 views
0

я хочу через петлюJQuery .each() не работает

  • каждый объект в пределах lists, а затем
  • каждый list в пределах lists и подсчитать количество объектов в пределах list
  • если число объектов в list = 3, я хочу, чтобы предупредить значение каждого объекта

JSON

{ 
    "lists":[ 
    { 
     "list":[ 
     { 
      "value": "List 1 Value A" 
     }, 
     { 
      "value": "List 1 Value B" 
     }, 
     { 
      "value": "List 1 Value C" 
     } 
     ] 
    }, 
    { 
     "list":[ 
      { 
      "value": "List 2 Value A" 
      }, 
      { 
      "value": "List 2 Value B" 
      }, 
      { 
      "value": "List 2 Value C" 
      }, 
      { 
      "value": "List 2 Value D" 
      } 
     ] 
    } 
    ] 
} 

JQuery код

$.each(response.lists.list, function(index, list){ 
    alert(list.value); 
} 

ответ

5

Попробуйте использовать:

$.each(response.lists, function (i, list) { 
    if (list.list.length === 3) { 
     $.each(list.list, function (j, item) { 
      alert(item.value); 
     }); 
    } 
}); 

Here's a fiddle.

+0

К сожалению, я забыл некоторые требования. Я обновил свой пост. – techlead

+0

@ SK11 - Просто добавьте оператор if вокруг внутреннего, который проверяет размер 'list'. –

+0

nope, это не работает – techlead

0

Сначала попробуйте без jQuery.each. Вам понадобится цикл, if-statement и другой цикл.

for (var i=0; i<response.lists.length; i++) 
    if (response.lists[i].list.length == 3) 
     for (var j=0; j<response.lists[i].list.length) 
      alert(response.lists[i].list[j].value); 

Я надеюсь, что есть хорошая причина, чтобы использовать объекты со свойствами (lists, list, value); в противном случае это может быть намного проще, используя только массивы.

Итак, выше петля конструкции с forEach:

$.each(response.lists, function(index, item) { 
    if (item.list.length == 3) 
     $.each(member.list, function(index, item) { 
      alert(item.value); 
     }); 
}); 
Смежные вопросы