jQuery $ get() - 比较加载的数据与each()

时间:2010-10-23 15:16:12

标签: jquery get compare each

我有两个列表.album和.favorites

首先,我使用此each()循环来比较.album项目与.favorites
当.album列表中有一个喜欢的副本时,我会添加一个喜欢的图标。

$(".album li").each(function(index) {
    var itemSrc = $(this).find("img").attr("src");
    if ( $(".favorites li img[src*='" + itemSrc + "']").length > 0 ) {
        $(this).append('<span class="favorite"><\/span>');
    }
});

现在我切换到稍后加载收藏夹的方法,所以我需要使用$get()将加载的数据与我的.album项目进行比较

$.get("ajax-load-favorites.php", {}, function(data) {
    // console.log(data);
    $(".album li").each(function(index) {
        var itemSrc = $(this).find("img").attr("src");
        /* compare with data here */
    });
});

ajax-load-favorites.php返回:

<li><img src="http://mysite.com/album/tn/006.jpg" /></li>
<li><img src="http://mysite.com/album/tn/003.jpg" /></li>
<li><img src="http://mysite.com/album/tn/010.jpg" /></li>

2 个答案:

答案 0 :(得分:0)

$.get("ajax-load-favorites.php", {}, function(data) {
    // console.log(data);
    $("li", data).each(function(index) {
        var itemSrc = $(this).find("img").attr("src");
        if ( $(".favorites li img[src*='" + itemSrc + "']").length > 0 ) {
           $(this).append('<span class="favorite"><\/span>');
        }
    });
});

它基本相同,只需修改选择器即可搜索加载ajax的数据。

答案 1 :(得分:0)

简单的字符串搜索可以解决您的问题:

$.get("ajax-load-favorites.php", {}, function(data) {
    // console.log(data);
    $(".album li").each(function(index) {
        var itemSrc = $(this).find("img").attr("src");
        if (data.indexOf(itemSrc) != -1) {
            $(this).append('<span class="favorite"><\/span>');
        }
    });
});