jQuery — CSS propertyName

#jquery #html #css

#jquery ( jquery ) #HTML #css — код

Вопрос:

Использование 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, поэтому я пытаюсь оптимизировать код, а не вручную писать для каждого стиля, как во втором примере.

Спасибо вам за любую помощь.

Ответ №1:

 $('.text').css(style);
 

Причина, по которой он не работает, заключается в том, что вы создали литеральный объект javascript. Это похоже на json, который вы используете для передачи параметров во втором примере. Это не сработает, поскольку не будет зацикливаться на вашем объекте и поэтому делает его искаженным. Вы уже проделали тяжелую работу, поэтому просто передайте стили.