如何在javascript变量中使用jquery.css

如何在javascript变量中使用jquery.css,javascript,jquery,css,Javascript,Jquery,Css,好的,这可能很简单,但我在Google或stackoverflow上找不到 而不是 var color = $(div).css('color') 我想将css存储在一个变量中 var theCss = $(div).css var color = theCss('color') // no, doesn't work 有可能吗?当然,我想要这个的原因要复杂得多,所以如果有一种方法可以存储您无法从jQuery中获取所有CSS的总和,我会非常有帮助。但是,您可以传入一个属性名称数组(从j

好的,这可能很简单,但我在Google或stackoverflow上找不到

而不是

var color = $(div).css('color')
我想将css存储在一个变量中

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

有可能吗?当然,我想要这个的原因要复杂得多,所以如果有一种方法可以存储

您无法从jQuery中获取所有CSS的总和,我会非常有帮助。但是,您可以传入一个属性名称数组(从jQuery 1.9开始)并返回一个值列表:

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

它;它比您预期的要复杂一点,但是您可以将
.bind
$.fn.css
混合使用。大概是这样的:

var cssFunc = $.fn.css.bind($('p'));
cssFunc('color');
然后,你可以这样称呼它:

var cssFunc = $.fn.css.bind($('p'));
cssFunc('color');
您还可以使用以下方法更改css:

cssFunc('color', red);
小提琴:


对于浏览器支持,正如@dfsq所说,您可以使用
$.proxy
,即IE 9和更高版本支持的
.bind()
函数的jQuery多边形填充

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


注意:此方法适用于所有jQuery方法,而不仅仅是css。

您签出此链接了吗@USER 2646829您比我快。您希望
theCss
始终返回元素的实际计算值,还是返回元素在执行
var theCss=$(div)时的实际计算值。css
@t.niese Good point。它当时的那个。这会有很大的不同,对吗?我问这个问题的原因是,我需要找出当鼠标移动到a HREF上时,哪些CSS元素发生了变化。大学教师;不要问为什么——这很复杂。如果你想比较两种状态,你需要缓存这些值。比较所有css属性可能是一件痛苦且不必要的事情,因此您应该检查是否确实有必要比较所有css属性并仅缓存它们(例如,如的答案中所示)。但你的用例似乎很特别,大多数答案都不正确,因为它们不能完全解决你的问题。哇,我从来没有发现过。我在这里问过格拉斯。我希望它在所有浏览器上都能工作,我会测试它。@Roemer它不会在任何浏览器上工作IE@dfsq出于好奇,除了支持之外,还有其他理由使用代理吗?没有,正如我所说,只有支持。如果存在
.bind
,那么使用
$proxy
是没有意义的。糟糕的是,我需要的是css的副本,而不是原始的链接。我需要看看自从我复制了css后,对css做了哪些更改。因此,即使答案=100%正确,它也不能为我提供解决方案。但是,在我得到的所有帮助下,我将能够找到第二个有效的解决方案出于好奇,为什么会被否决?在没有提供任何解释的情况下否决投票;这有什么意义?