我有两个列表.album和.favorites结果

首先,我使用这种each()循环比较对抗.favorites结果的.album项 当存在在.album列表中的最喜欢的复制I追加一个喜爱的图标。

$(".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的负载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>
有帮助吗?

解决方案

一个简单的字符串搜索将解决你的问题:

$.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>');
        }
    });
});

其他提示

$.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加载的数据进行查询。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top