2012-05-30 117 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

这可能是绝对简单的方法:在http://jsfiddle.net/alnitak/46QDg/

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

工作演示,如果你需要做的使用更具体的选择!