-2

我有以下代码:

$.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 的数据?

4

3 回答 3

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。

在我的示例中,我选择了#imageListwith 类的子级image,然后遍历每个选定的元素。

于 2013-10-21T03:44:54.667 回答
1

你可以做这样的事情

$(data).children('div').each(function(){
$(this).doSomething();
})
于 2013-10-21T03:42:58.040 回答
0

也许是这样的:

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

   });
})

or could use something like:

$("#imageList").children().each()
于 2013-10-21T03:45:06.103 回答