如何包装每个对象,然后在每个创建的包中插入对象的索引和值?
我已尝试使用此代码实现此目的:
$.ajax({
url: "some url",
type: "GET",
success: function(data) {
var data = data._embedded.video;
$.each(data, function (index, value) {
$('.list').append('<div class="video_wrap ' + value.id + '"></div>');
$.each(value, function (i, v) {
$('.video_wrap').append('<div>' + i + ': ' + v + '</div>');
});
});
}
});
必须如下:
<div class="list">
<div class="video_wrap 497">
<div>id: 497<div>
<div>name: smth<div>
</div>
<div class="video_wrap 514">
<div>id: 514<div>
<div>name: smth<div>
</div>
</div>
但我得到了这个:
<div class="list">
<div class="video_wrap 497">
<div>id: 497<div>
<div>name: smth<div>
<div>id: 514<div>
<div>name: smth<div>
</div>
<div class="video_wrap 514">
<div>id: 497<div>
<div>name: smth<div>
<div>id: 514<div>
<div>name: smth<div>
</div>
</div>
非常感谢!
答案 0 :(得分:0)
您的第二个循环更新.video_wrap
的所有实例:
$('.video_wrap').append(
您可以对其进行更改,使其仅更新您感兴趣的内容:
$('.video_wrap.' + value.id).append(
或者,保留新video_wrap
的记录并直接使用:
$.each(data, function (index, value) {
var wrap = $('<div class="video_wrap ' + value.id + '">').appendTo(".list");
$.each(value, function (i, v) {
wrap.append('<div>' + i + ': ' + v + '</div>');
});
});
此处,appendTo
将返回附加的项目,wile append
将返回父项。