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:

{
    "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>

4

2 に答える 2

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);
});
于 2012-05-30T15:26:53.020 に答える
1

これはおそらく最も簡単な方法です。

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

http://jsfiddle.net/alnitak/46QDg/の動作デモ

必要に応じて、より具体的なセレクターを使用してください。

于 2012-05-30T15:40:47.027 に答える