2013-07-27 68 views
2

我有一堆divs,我用jquery.css()动态改变样式。 我拉的属性的方式是返回容器的div id。使用ID字符串作为CSS属性不起作用

在这种情况下,stylechange =“fontFamily”,因为这是主容器的ID。

str =选中选项的值。我有console.log()和alert()调试这个,我得到字符串返回,当我手动设置属性和值的作品。

但是,使用变量作为属性或值不起作用,我很难。

的Javascript:

var stylechange = ""; 
var str = ""; 
$("select").change(function(){ 
    stylechange = $("select option:selected").parents(".styleoptions").attr('id'); 
    str = $("select option:selected").text(); 
    $(".elementselected textarea").css({stylechange: str}); 
}) 

HTML: 这是div

<div class="ui-draggable ui-resizable addeddiv elementselected absolute move" style="position: relative; display: block;"> 
    <div class="ui-resizable-handle ui-resizable-e" style="z-index: 90; display: block;"></div> 
    <div class="ui-resizable-handle ui-resizable-s" style="z-index: 90; display: block;"></div> 
    <div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 90;"></div> 
    <div class="removethis ui-resizable-handle absolute">X</div> 
    <textarea type="textbox" class="addedtext"></textarea> 
</div> 

这就是CSS会从

<div id="fontFamily" class="styleoptions" style="display: block; text-transform: capitalize;"> 
    <div class="optiontitle" style="text-transform: capitalize;">family</div> 
    <div class="options" style="text-transform: capitalize;"> 
     <select style="text-transform: capitalize;"> 
     <option style="text-transform: capitalize;">palatino</option> 
     <option style="text-transform: capitalize;">arial</option> 
     <option style="text-transform: capitalize;">verdana</option> 
     <option style="text-transform: capitalize;">times new roman</option> 
     </select> 
    </div> 
</div> 
+0

我们需要看到一些HTML,但是从外观上来看,你忘了'stylechange'前面的'var'实际声明它是一个变量。 'fontFamily'不是CSS属性,但'font-family'是 –

+0

这听起来像一个可怕的想法!使用CSS属性作为ID的? – adeneo

+0

做一个小提琴... –

回答

2

你的代码试图设置ID的HTML一个叫做stylechange的css属性,这不是你需要的,你想设置c SS财产分配给变量stylechange

,所以你需要使用

$(".elementselected textarea").css(stylechange, str); 

或者

var style = {}; 
style[stylechange] = str; 
$(".elementselected textarea").css(style);