jQuery $ get () - сравнивает загруженные данные с каждым () - PullRequest
0 голосов
/ 23 октября 2010

У меня есть два списка .album и .favor

Сначала я использовал этот цикл each(), чтобы сравнить элементы .album с .favor
Когда в списке .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 голосов
/ 23 октября 2010

Простой поиск строки решит вашу проблему:

$.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>');
        }
    });
});
0 голосов
/ 23 октября 2010
$.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.

...