2012-03-23 4 views
0

색상/배경색 # d10044 인 모든 CSS 요소의 색상을 변경하려면 어떻게해야합니까?jquery로 많은 CSS 요소의 색상 변경

+1

그 배경색을 가진 클래스를 만든 다음 그 모든 요소에서 클래스를 제거하는 것이 훨씬 낫습니다. $ ('*'). find ('. MyBackgroundColor'). removeClass ('MyBackgroundColor'). addClass ('MyOtherBackgroundColor'); – frenchie

+0

@frenchie, 나는 동의하지만 .find()는 필요 없다. 클래스를 선택자로 사용하자. –

+1

@Chimoo : 네, 다음과 같이 쓸 수도 있습니다 : $ ('MyBackgroundColor'). removeClass (' MyBackgroundColor '). addClass ('MyO theBackgroundColor '); 어쨌든 클래스를 변경하는 것이 모든 요소를 ​​반복하고 배경색을 파싱 한 다음 색상을 변경하는 것보다 훨씬 효율적입니다! – frenchie

답변

0

jQuery를 사용하여 CSS 속성 값을 기반으로 요소를 선택할 수 없습니다.

모든 변수를 개별적으로 반복하고 배경색 값을 확인한 다음 # d10044 인 경우 변경해야합니다.

또 다른 방법은 태그에 클래스를 추가 한 다음 CSS를 사용하여 색상을 덮어 쓰는 것입니다.

+0

당신의 서사시적인 턱수염을 존경하지만, 나는 동의하지 않습니다 ... 이것은'.filter()'가있는 것입니다. 틀림없이 본질적으로 객체를 통해 루핑하고 있지만 훨씬 쉽게 만들 수 있습니다. –

1

이 시도 :이 오히려 저하 될 수 있도록

$('*').each(function() { 
    if($(this).css("background-color") == "#d10044") { 
     // do whatever you need to those elements here 
    } 
});​​​​ 

그것은하지만, 페이지의 모든 요소를 ​​통해 간다. 가능한 요소 목록을 좁히는 방법이있는 경우 전역 (*) 연산자보다 바람직합니다.

+0

스타일 시트에서 rgb (xxx, xxx, xxx) 만 검색 할 수 있습니다. – mowgli

+0

정말이 솔루션이 효과적이기를 원합니다.하지만 기쁨은 없습니다. – nipponese

+0

@nipponese : 정확히 무엇이 문제 인 것 같습니까? 이 코드는 작동해야합니다. 다른 곳에서는 오류가있을 가능성이 큽니다. –

1
$('*').filter(function(i){ 
    return $(this).css("background-color") == $("<div style='color:#d10044'/>").css("color"); 
}).css("color", "#000") 

http://api.jquery.com/filter/이 이

브라우저가 RGBA 또는 다른 형식

편집 등의 색상을보고 할 수 있기 때문에 당신은, 16 진수 값에 약간의 정상화를 수행해야합니다이

: 여기 당신이

을 위해 그것을 않았다 http://jsfiddle.net/Pvg8h/

+0

+1 나는 당신과 똑같은 담당자가 있기 때문에 +1합니다. =) –

+0

좋아요? $ ('*'). filter (function() { $ (this) .css ("background-color") == # d10044 || $ (this) .css ("color") == # d10044}) .css ("배경색", "오렌지색"); – mowgli

+0

내가 어떻게 그 색깔을 가진 새로운 요소를 만들었는지 보여주기 위해 편집했고, 그 색이 –