jQuery的$ get()方法 - 比较与每个载入数据()
题
我有两个列表.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加载的数据进行查询。
不隶属于 StackOverflow