2010-12-09 3 views
0

То, что я пытаюсь сделать здесь, - это цикл через список изображений с помощью jquery .each() и проверить, если src, который я передаю функции, уже существует внутри список. Если это не так, я хочу добавить его, если я не хочу ничего делать. Где я поставил код, чтобы добавить новый образ обнажая в виду, я только хочу, чтобы сделать это после каждого() итераций надТестирование внутри .each() и разбиение

Вот что я до сих пор

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, поэтому я, возможно, ошибся с синтаксисом. Любая обратная связь будет принята с благодарностью.

ответ

1

Вы можете пропустить петлю и просто найти все изображения с СРК атрибут, который вы ищете, используя JQuery селектор [attribute="value"]:

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 имеет особое значение: Return false ведет себя как оператор break; и итерация останавливается, а возврат true ведет себя как оператор continue, останавливая текущую итерацию раньше и продолжая переход к следующему.

+0

Большое спасибо за решение, но больше всего для объяснения. Я склоняюсь к чрезмерному усложнению кода. Я полагаю, что это часть учебного процесса. – willmcneilly 2010-12-09 01:48:51

+0

Нет проблем. Обучение в дополнение к вашему JavaScript с помощью jQuery не сложно. Обучение правильному использованию jQuery * требует времени. – meagar 2010-12-09 01:52:15

1

Вы можете избежать всех дополнительных материалов и запросить его напрямую.

if(!($('ul.friendImages li img[src=' + imageSrc + ']').length)){ 
} 
Смежные вопросы