2012-03-21 2 views
0

조건이 참일 때 두 가지 결과를 내고 싶습니다. 그래서 작은 함수를 만들었지 만, condtion이 ture 일 때 첫 번째 결과 만 나타나고 있습니다. src와 pixel이 비어있을 때 이미지 프레임을 표시하고 높이와 너비를 공백으로두면 높이와 너비를 1 픽셀로 설정하므로 높이와 너비 속성을 설정합니다.jquery if conditon?

$(function() { 

    if ($('img.offerProduct').attr('src') == false) { 
     $('.offerProduct').removeClass('offerProduct'); 
     $('.offerProduct').attr({width:'0', height:'0'}) 


    } 
} 

) 


<body> 

<img src="" width="60" height="60" class="offerProduct" /> 
</body> 

답변

3

attr() 메서드는 일치하는 집합의 첫 번째 요소의 특성 만 가져옵니다.

$(function() { 

    $('img.offerProduct').each(function() { 
     if($(this).attr('src') == false) { 
      $('.offerProduct').attr({width:'0', height:'0'}).removeClass('offerProduct') 
     } 
    } 
}); 
1

당신은 이미지 요소의 클래스 "offerProduct"을 제거 : 클래스 offerProduct 모든 이미지를 처리하려면 each() 방법을 사용해야합니다. 그리고 아래 줄에서 방금 삭제 한 클래스 "offerProduct"를 사용하여 요소의 속성을 설정합니다. 따라서 두 번째 선택기는 빈 객체를 반환합니다.

당신은 더 나은 귀하의 JQuery와 명령의 체인을 사용할 수 있습니다 어쩌면 이미지가 존재하지 않는 경우 단지 전체 요소를 제거하는 것이 좋습니다, http://jsfiddle.net/assZV/

그러나 :

$('.offerProduct').removeClass('offerProduct').attr({width:'0', height:'0'}) 

은 작업 예제를 참조하십시오? 속성 선택자를 사용하여 src없이 각 이미지를 즉시 찾을 수 있습니다.

$(function() { 
    $('img.offerProduct[src=""]').hide(); 
});