2014-09-09 2 views
2

확인은 매우 쉽지만 Google 또는 stackoverflow에서 찾을 수 없습니다. 대신javascript 변수에서 jquery .css를 사용하는 방법

var color = $(div).css('color') 

나는 변수에 CSS를 저장할.

var theCss = $(div).css 
var color = theCss('color') // no, doesn't work 

모두 가능합니까? 물론 내가 원하는 이유는 훨씬 복잡하기 때문에 저장 방법이 있다면 대단히 도움이 될 것입니다.

+3

이 링크를 확인한 적이 있습니까? [jQuery를 사용하여 모든 CSS 가져 오기] (http://stackoverflow.com/questions/754607/can-jquery-get-all-css-styles-associated-with-an-element) – user2646829

+0

@ user2646829 당신은 나를 때렸다. – DavidT

+2

'theCss'가 항상 요소의 실제 계산 된 값을 반환하거나 'var theCss = $ (div) .css' –

답변

5

그것을, 예상보다 SA는 조금 더 복잡하지만 $.fn.css와 혼합 .bind을 사용할 수 있습니다 . 이런 식으로 뭔가 : 다음

var cssFunc = $.fn.css.bind($('p')); 

,이처럼 호출 할 수

cssFunc('color', red); 

바이올린 : http://jsfiddle.net/f8yanzsu/

cssFunc('color'); 

또한이 방법으로 CSS를 변경할 수 있습니다


브라우저 지원의 경우 @dfsq와 마찬가지로은 , .bind() 함수의 jQuery polyfill (IE 9 이상에서 지원됨)을 사용할 수 있습니다.

var cssFunc = $.proxy($.fn.css, $('p')); 

참고 :이 방법은 모든 jQuery를 방법뿐만 아니라 CSS를 작동.

+0

와우, 나는 결코 그것을 발견하지 못했을 것이다. Glas 내가 여기 물었다. 모든 브라우저에서 작동하길 바래요, 테스트 할게요. – Roemer

+2

@Roemer IE <9에서는 작동하지 않습니다. 이전 IE를 사용하려면 다음과 같이하십시오.'$ .proxy ($. fn.css, $ ('p'))'. – dfsq

+0

@dfsq는 호기심에서 벗어나 지원을 제외하고는'proxy '를 사용해야 할 다른 이유가 있습니까? –

2

jQuery에서 모든 CSS의 총계를 얻을 수 없습니다. 당신은 그러나 (jQuery를 1.9 기준) 속성 이름의 배열에 전달하고 다시 값의 목록을 얻을 수 있습니다 :

var cssStuff = $(div).css(["color", "fontSize", "width"]); 
+1

호기심에서 왜이 부분을 거부 했습니까? 누가 explantion을 제공하지 않고 downvote; 심지어 요점은 무엇입니까? – Pointy

관련 문제