#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, который вы используете для передачи параметров во втором примере. Это не сработает, поскольку не будет зацикливаться на вашем объекте и поэтому делает его искаженным. Вы уже проделали тяжелую работу, поэтому просто передайте стили.