我如何迭代数据?

时间:2013-10-21 03:37:14

标签: jquery

我有以下代码:

$.ajax({
    url: (path+args),
    type: "POST",
    success: function( data ){
        // do stuff with "data"
    }
});

如果数据如下所示:

<div id="imageList">
    <div class="image"></div>
    <div class="image"></div>
    <div class="image"></div>
    <div class="image"></div>
    <div class="image"></div>
    <div class="image"></div>
    <div class="image"></div>
    <div class="image"></div>
</div>

如何迭代具有div的数据?

3 个答案:

答案 0 :(得分:3)

如果您可以控制服务器返回的内容,我可能会将JSON发送回浏览器 - 例如:

[
    { url: "a.png" },
    { url: "b.png" }
]

...这样可以轻松完成for (var i = 0; i < data.length; i++) data[i].url

之类的操作

也就是说,如果您无法控制从服务器返回的内容,您可以使用返回的数据创建一个片段并使用常规的jQuery方法。

$(data).children('.image').each(function() {
    var url = $(this).children('img').attr('src');  // or whatever
});

这是有效的,因为将一串HTML传递给jQuery会创建一个DocumentFragment,解析字符串中的HTML并创建一个“迷你DOM”。返回的jQuery对象选择该DOM的顶级元素(在本例中为div#imageList),您可以自由遍历片段DOM。

在我的示例中,我使用类#imageList选择image的子项,然后迭代每个选定的元素。

答案 1 :(得分:1)

你可以做这样的事情

$(data).children('div').each(function(){
$(this).doSomething();
})

答案 2 :(得分:0)

也许是这样的:

$.each( $('#imageList'), function(i, imageList) {
   $('div', imageList).each(function() {

   });
})

or could use something like:

$("#imageList").children().each()