使用jQuery v1.6.4,
我正在尝试动态格式化一些对象。
这是我的代码:
<html>
<head>
<script src="http://code.jquery.com/jquery-1.6.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
style = {'color':'#F30', 'font-size':'20px'};
/* example:1 - not working */
for(attr in style) $('.text').css({attr:style[attr]});
/* example:2 -works */
//$('.text').css({'color':style['color']}).css({'font-size':style['font-size']});
})
</script>
</head>
<body>
<div class="text">This is the text.</div>
</body>
</html>
为什么示例1不起作用?还有其他方法吗?
Chrome控制台未显示任何错误。 对象“style”将形成JSON,所以我试图优化代码,而不是手动编写每个样式,如第二个例子。
感谢您的帮助。
答案 0 :(得分:6)
$('.text').css(style);
它不起作用的原因是你创建了一个javascript文字对象。这就像您在第二个示例中用于传递参数的json。它不会起作用,因为它不会遍历您的对象,因此使它看起来格格不入。你已经完成了艰苦的工作,所以只需传递样式。