我在这里尝试做的是使用jquery .each()遍历图像列表,并测试我传递给函数的src是否已经存在于列表中。如果不是,我想添加它,如果我不想做任何事情。我在哪里放置代码以添加新图像baring我只想在每次()迭代结束后执行此操作
这是我到目前为止所拥有的
function addFriendImage(imageSrc){ //Adds the image of the friend to the sidebar
var imgReturn = $('ul.friendImages li img').each(function(){
var currentImageSrc = $(this).attr('src');
if(currentImageSrc == imageSrc){
return false;
}
});
if(imgReturn != false){//does this make sense?
//I'll add an new image, (I can work out to do this bit myself)
}
}
我是javascript和jquery的新手,所以我的语法可能出错了。 任何反馈将不胜感激。
答案 0 :(得分:1)
您可以使用jQuery [attribute="value"]
选择器跳过循环并找到所有具有您正在寻找的src属性的图像:
function addFriendImage(imageSrc){ //Adds the image of the friend to the sidebar
if ($('ul.friendImages li img[src="' + imageSrc + '"]').length) {
// img with src attribute matching imageSrc exists
} else {
// img doesn't exist
}
}
您无法从$.each
返回值,因为它始终返回用于调用链接的jQuery对象。但是,返回true / false确实有特殊含义:返回false
的行为类似于break;
语句并且迭代停止,而返回true
的行为类似于continue
语句,停止当前迭代早,继续下一个。
答案 1 :(得分:1)
你可以避免所有额外的东西并直接查询。
if(!($('ul.friendImages li img[src=' + imageSrc + ']').length)){
}