2012-05-30 3 views
0
<ul> 
<li><a href="" class="edit">a list item</a></li> 
<li><a href="" class="edit">a list item</a></li>  
<li><a href="" class="edit">a list item</a></li> 
<li><a href="" class="edit">a list item</a></li> 
<li><a href="" class="edit">a list item</a></li> 
<li><a href="" class="edit">a list item</a></li> 
</ul> 

JSON:Анализировать Уплотненный JSON и вставить элементы списка со значениями

{ 
    "status": "ok", 
    "collection": [ 
     { 
      "snapshot_id": 5110, 
      "keyframe_id": 601 
     }, 
     { 
      "snapshot_id": 5100, 
      "keyframe_id": 610 
     }, 
     { 
      "snapshot_id": 5130, 
      "keyframe_id": 614 
     }, 
     { 
      "snapshot_id": 5142, 
      "keyframe_id": 616 
     }, 
     { 
      "snapshot_id": 5156, 
      "keyframe_id": 617 
     }, 
     { 
      "snapshot_id": 5178, 
      "keyframe_id": 619 
     } 
    ] 
} 

Учитывая элементы списка здесь и ответ JSON, как бы один доступ каждого keyframe_id элемента гнезда и вставьте в HREF как например:

<ul> 
<li><a href="601" class="edit">a list item</a></li>  
<li><a href="610" class="edit">a list item</a></li> 
<li><a href="614" class="edit">a list item</a></li> 
<li><a href="616" class="edit">a list item</a></li> 
<li><a href="617" class="edit">a list item</a></li> 
<li><a href="619" class="edit">a list item</a></li> 

+3

Вы анализируете его в объекте JavaScript, перебираете массив в 'collection' и получаете доступ к каждому свойству' keyframe_id' объектов. –

+0

@FelixKling или вы делаете то, что вы сделали в комментарии в другом вопросе около часа назад, и используете версию параметра функции '.attr()' в коллекции '' элементов ;-) – Alnitak

+0

@Alnitak: True: DI был настолько сосредоточен на разборе JSON ... –

ответ

2

самый простой способ:

var collection = json.collection; 
for (var i = 0; i < collection.length; i++) { 
    $("ul > li:eq(" + i + ") > a").attr("href", collection[i].keyframe_id); 
} 

Или наоборот:

$("ul > li").each(function(i) { 
    $(this).children("a").attr("href", json.collection[i].keyframe_id); 
}); 
1

Это, вероятно, абсолютный простой способ:

$('ul a').attr('href', function(i) { 
    return json.collection[i].keyframe_id; 
}); 

Работа демо на http://jsfiddle.net/alnitak/46QDg/

ли использовать более конкретный селектор, если вам нужно !

Смежные вопросы