2010-02-12 6 views
4

background-image: url(somepath/somename.png)의 스타일을 가진 div의 모든 jQuery를 어떻게 선택할 수 있습니까?png 배경 이미지가있는 모든 div 선택

+0

유일한 방법은 foreach 문을 사용하여 스타일 값을 확인하는 것이 나에게 것을 ... – Kirzilla

+0

@Kirzilla : 다음은 각각의, 아래의 답변을 읽으십시오 그들은 유효한 방법입니다 :-) –

답변

3

는 jQuery를 선택이 아니라, 문제가 해결 될 수 있습니다 그러나

$('div').each(function() { 
    if ($(this).css('background-image') == 'url("image.png")') { 
     // do something here 
    } 
}); 

이,보다 효율적인 방법은 당신이 아니라 배경 이미지를 사용하는 하나의 클래스를 가지고 있는지 확인하는 것, 단순히 선택

$(document).ready(function() { 
    $.extend($.expr[':'], { 
     hasMyImage: function(el) { 
      return ($(el).css('background-image') == "Url('somepath/somename.png')"); 
     } 
    }); 
}); 
그런

선택하기 : 사용자 지정 선택기를 추가 $('.bgClass')

+0

+1은 클래스 사용에 대한 제안입니다. –

+0

문제는 내가 요소를 생성하는 코드에 액세스 할 수 없다는 것입니다. 날씨 웹 파트이고 배경 이미지 주소가 항상 바뀝니다. div에는 클래스가 없습니다. 이 점은 나를이 문제로 인도한다. – frbry

4

시도

$("div:hasMyImage"); 
+0

'background-image'에서 적절한 브라우저 간 일치를 위해서는 regexp가 필요합니다. 일부 브라우저는 문자열 식별자 ('')로 값을 반환하지만 일부는 반환하지 않습니다. url()의 경우도 다를 수 있습니다. –

+0

+1 정말 대단합니다. 새로운 셀렉터를 정의 할 수 있다는 것을 알지 못했습니다.이게 유용 할 것입니다. –

+0

개비 (Gaby)와 합의했습니다. – frbry

1

filter 기능 사용

var matches = $("div").filter(function() 
{  
    return ($(this).css("background-image") == "url('somepath/somename.png')"); 
}); 
관련 문제