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) 
    } 
} 

난에 새로 온 사람이 무엇을하는 나는 단지 각() 반복 한 후이 작업을 수행 할 수 염두에 드러내는 새로운 이미지를 추가하는 코드를 삽입 할 경우 자바 스크립트 및 jquery 그래서 나는 구문에 잘못되었을 수 있습니다. 모든 의견은 크게 감사하겠습니다.

당신은 jQuery를 [attribute="value"] 선택기를 사용하여 루프를 건너 뛰고 당신이 찾고있는 속성 SRC 모든 이미지를 찾을 수 있습니다

답변

1

:

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; 문과 같이 동작하고 반복을 중지하고 truecontinue 문과 같이 동작하여 현재 반복을 일찍 중단하고 다음 반복을 수행합니다.

+0

대부분의 해답을 주셔서 감사합니다. 내 코드를 지나치게 복잡하게 만드는 경향이 있습니다. 나는 그것이 학습 과정의 일부라고 생각합니다. – willmcneilly

+0

문제 없습니다. JavaScript를 jQuery로 보충하는 것은 어렵지 않습니다. jQuery *를 올바르게 사용하려면 * 시간이 오래 걸립니다. – meagar

+0

죄송합니다. .length 메소드가 무엇인지 알려주시겠습니까? 그것 없이는 진실하지 않을 수 있습니까? – willmcneilly

1

모든 여분의 것들을 피하고 직접 쿼리 할 수 ​​있습니다.

if(!($('ul.friendImages li img[src=' + imageSrc + ']').length)){ 
} 
+0

답장 시간을내어 주셔서 감사합니다. – willmcneilly