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

Roe*_*mer 2 javascript css jquery

好吧,这可能很容易,但我无法在Google或stackoverflow上找到它.

代替

var color = $(div).css('color')
Run Code Online (Sandbox Code Playgroud)

我想将css存储在变量中.

var theCss = $(div).css  
var color = theCss('color')  // no, doesn't work
Run Code Online (Sandbox Code Playgroud)

它可能吗?当然,我想要这个的原因要复杂得多,所以如果以某种方式存储,我会得到很大的帮助

Kar*_*non 5

它;比你想象的要复杂一点,但你可以使用.bind混合$.fn.css.像这样的东西:

var cssFunc = $.fn.css.bind($('p'));
Run Code Online (Sandbox Code Playgroud)

然后,你可以像这样调用它:

cssFunc('color');
Run Code Online (Sandbox Code Playgroud)

您还可以使用此方法更改css:

cssFunc('color', red);
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/f8yanzsu/


对于浏览器支持,如@dfsq所说,你可以使用IE 9及更高版本支持$.proxy.bind()函数的jQuery polyfill .

var cssFunc = $.proxy($.fn.css, $('p'));
Run Code Online (Sandbox Code Playgroud)

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

  • @Roemer它不适用于IE <9.如果你需要旧的IE更好的话:`$ .proxy($.fn.css,$('p'))`. (2认同)