日期:2014-05-16  浏览次数:20403 次

jquary css方法问题


jquary设置一个元素的CSS, 想把变量contentType的值(width)当成 Css的属性名传递给jquary,但是传递给jquary的是contentType这个变量的名字(contentType)。

请教各位大哥该如何修改这个代码呢???

------解决方案--------------------


var contentType = "width";
    $(function () {
        var styleStr = "{'backgroundColor':'red', '" + contentType + "': '500px'}";
        $("#tt").css(eval('('+styleStr+')'));
        //两种方式 二选一啊
        $("#tt").css(contentType, "500px");
    });


------解决方案--------------------
还有一种方法:

css = {};
css.position = "relative";
css[contentType] = '100px';
theLayer.css(css);


其实,jQuery的css方法在接受一个参数的时候,无非是接受一个object,先构造这个object再传递过去也一样。object的属性访问可以用[]方括号,哈哈,于是css[contentType] = '100px';就等价于css.width = '100px';

能不用eval做好不要用eval。