使用jQuery / javascript

时间:2015-06-03 17:58:47

标签: javascript jquery html css

我想做什么:





我想在< style>中添加规则并修改现有规则标记有javascript / jQuery。





为什么我要这样做:


&#xA ;

我基本上是在构建一个配色方案编辑器,当用户更改表单中的值时,我想更新CSS以反映这种变化。





我尝试了什么:





用JS函数生成的CSS替换整个< style> 标记。这可行但似乎很多处理只是一个非常小的变化。





此外,我还可以创建包含特定CSS类的容器< div> ,只需查找/替换其HTML。例如:




 < div id =“button_background_cont”>
 < style type =“text / css”> .buttons {background-color:#333333;}< / style>
 < / DIV>

 < div id =“button_color_cont”>
 < style type =“text / css”> .buttons {color:#ffffff;}< / style>
 < / div>
  




这些都有效......但是真的很笨重,我并不特别喜欢它们。





我需要做的示例:




 < style type =“text / css”id =“color_scheme”>
 .buttons {背景:#333333;颜色:#ffffff;}
< / style>
<输入名称=“button_background”id =“button_background”value =“#333333”/>
<输入名称= “button_color”id =“button_color”value =“#ffffff”/>
  




更改表单元素并使其成为以下< / p>&#xA;&#xA;

 &lt; style type =“text / css”id =“color_scheme”&gt;&#xA; .buttons {background:#ff0000;颜色:#333333;}&#xA;&lt; / style&gt;&#xA;&lt; input name =“button_background”id =“button_background”value =“#ff0000”/&gt;&#xA;&lt; input name = “button_color”id =“button_color”value =“#333333”/&gt;&#xA;  
&#xA;&#xA;

有什么想法吗?

&#XA;

3 个答案:

答案 0 :(得分:3)

这将是一种基本的方法,您可能会找到一种更好的方式来生成样式字符串,但它看起来像这样:

    function generateStylesContent(){
        var btnBgr = $("#button_background").val();
        var btnColor = $("#button_color").val();
        var stylesPlaceholder = ".buttons{background:[BACKGROUND];color:[COLOR];}";

        var newGeneratedStyles = stylesPlaceholder
                                 .replace("[BACKGROUND]", btnBgr)
                                 .replace("[COLOR]", btnColor)    

        $('#color_scheme').text(newGeneratedStyles);
    };

    $('.buttons').on('click', function(){
        generateStylesContent();    
    })

JSFIDDLE

更新

答案 1 :(得分:0)

你可以用以下方式使用j-query来实现它

$("#button_background").css("color",'blue')

答案 2 :(得分:0)

虽然可以这样做,但有更简单的方法(检查herehere),例如: 使用class selector,您可以过滤所有具有“旧”类$( ".oldClass" )的对象,并操纵他们拥有的类(而不是编辑类):

过滤并add新班级

$( ".oldClass" ).addClass(".newClass")

remove旧班级

$( ".oldClass" ).removeClass(".oldClass")

您还可以使用.css更改媒体资源:

$( ".oldClass" ).css("background","#ff0000")