이제 배경 이미지가 있는 모든 요소를 선택해야 합니다.
이 문제는 다소 까다롭습니다.
jQuery의 DOM 필터 메소드인 filter()를 사용하면 요소를 선택할 수 있습니다.
jQuery의 필터 메소드를 사용하면 문자열(즉, 선택기 표현식)을 매개변수로 전달할 수 있습니다.
또는 함수의 반환 값이 전달됩니다. 요소 선택 여부를 정의합니다.
전달된 함수는 현재 선택 세트의 각 요소에서 실행됩니다.
함수가 false를 반환할 때마다 해당 함수는 반환 값에서 삭제됩니다. true이면 해당 요소
는 영향을 받지 않습니다.
jQuery('*').filter(function(){
return !!jQuery(this).css('Background');
})
위의 코드는 배경 이미지가 있는 모든 요소를 선택합니다.
초기 컬렉션은 모든 요소(*)입니다. 그런 다음 filter()는 함수를 매개 변수로 호출됩니다.
이 함수는 각 컬렉션에 대해 수행됩니다. 속성 배경 속성 판단,
존재하는 경우 유지합니다. 그렇지 않으면 결과 세트에서 이 요소를 삭제합니다.
보이는 것은 모두 정의되지 않은 빈 유형이며 물론 false입니다.
함수 호출이 이러한 값을 반환하면 함수는 false를 반환하므로 컬렉션에서 배경 속성이 없는
요소가 제거됩니다. jQuery는 이러한 반환 값을 부울 유형으로 변환하기 때문에 이를 유지하는 것이 좋습니다.
이렇게 하면 코드를 보는 사람이 누구나 의도를 확실히 알 수 있습니다. ).
filter()를 전달하는 함수에서 this 키워드를 통해 현재 요소를 참조할 수 있습니다.
jQuery 함수에 포함하면
this // 일반 요소 개체
jQuery(this) //jQuery 개체
다음은 상상력을 자극하는 몇 가지 예입니다.
var width = jQuery(this).width;
반환 너비 >100 && widht
})
//10개 또는 20개의 하위 요소를 반환합니다.
jQuery('*').filter(){
var children = jQuery(this).childern().length;
return children ===20;
다음은 코드 예: 배경색이 있는 요소를 결정하고 모든 배경색을 검정색으로 변경합니다.
코드 복사
코드는 다음과 같습니다. head> 안녕하세요
;div class ="c2">그 여자뿐이에요
게으른 노래
내가 젊다면 ;h3> 새로운 영혼
/javascript" >
jQuery(document).ready(function($) {
var ret = $('*').filter(function(index) {
return !$(this). css(' 배경색');
});
$.each(ret, function(index, val) {
$(val).css('배경색','검은색' );
})