我在复制Javascript

我在复制Javascript,javascript,jquery,html,css,dry,Javascript,Jquery,Html,Css,Dry,我们将有一组记录,用户将选择什么颜色,他们希望该部分。如您所见,我正在复制脚本代码,以便更改div的颜色。该值将存储在mysql中,并在用户再次访问页面时检索。有没有办法格式化此代码,使其不会重复500次?谢谢你的帮助-新手 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xml:lang="en

我们将有一组记录,用户将选择什么颜色,他们希望该部分。如您所见,我正在复制脚本代码,以便更改div的颜色。该值将存储在mysql中,并在用户再次访问页面时检索。有没有办法格式化此代码,使其不会重复500次?谢谢你的帮助-新手

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>

        <script type="text/javascript" src="//code.jquery.com/jquery-1.4.3.min.js"></script>


        <style type="text/css">
            #full {

            background-color: #ffffff;
            }
        </style>

        <title></title>

        <script type='text/javascript'>//<![CDATA[
            $(window).load(function(){
                $(document).ready(function(){

                    $(".theme").change(function()
                    {var background = $("#color1").val();   
                        $("#full").css("background-color", background);
                    });
                    $(".theme2").change(function()
                    {var background = $("#color2").val();   
                        $("#full2").css("background-color", background);
                    });
                    $(".theme3").change(function()
                    {var background = $("#color3").val();   
                        $("#full3").css("background-color", background);
                    });
                });

            });//]]> 

        </script>

        <link rel="stylesheet" href="css/color_picker.css" type="text/css" />
    <script language="javascript" type="text/javascript" src="js/jquery.colorpicker.js"/></script>
    <script type="text/javascript">
        //Run the code when document ready
        $(function() {    
            $('#color1').colorPicker({showHexField: false});
            $('#color2').colorPicker({showHexField: false});

        });

    </script>

</head>

<body>
    <body >
        <label for="color">Color :</label> </td><td>
        <div id="full"> 
            <form method="post" action="">

                <input id="color1" type="hidden" name="color1" value="" class="theme"/>
            </div>
            <div id="full2" border="1" width="100%"> 
                <input id="color2" type="hidden" name="color2" value="" class="theme2"/>
            </div>
            <div id="full3" border="1" width="100%"> 
                <input id="color3" type="hidden" name="color3" value="" class="theme3"/>
            </div>
        </form>
    </body>

您可以使用full和theme之类的类,而不是使用Id,因此任何给定集合的html都是

<form method="post" action="">
    <div class="full"> 
        <input id="color1" type="hidden" name="color1" value="" class="theme"/>
    </div>
    <div class="full" border="1" width="100%"> 
        <input id="color2" type="hidden" name="color2" value="" class="theme"/>
    </div>
    <div class="full" border="1" width="100%"> 
        <input id="color3" type="hidden" name="color3" value="" class="theme"/>
    </div>
</form>
$('.theme').change(function() {
    var $this = $(this);
    var background= $this.val();

    $this.closest('.full').css("background-color", background);
})

编辑:修复错误,从父项更改为最近项,因此.full不必是输入的直接父项。

您可以通过简单的操作实现这一点。 如果颜色的数量不是静态的,则可以使用获取所有元素,然后获取长度

$(window).load(function(){
    $(document).ready(function(){
        //if the count is static you can just hardcode it
        var colorCount = $("[id^='color']").length; 

        for(var i = 1; i <= colorCount; i++) {
            var color = "#color" + i;
            var full = "#full" + i;
            var theme = ".theme" + i;

            //only necessary because your first div does not have the number
            if(i === 1) {
                full = "#full";
                theme = ".theme";
            }

            $(".theme").change(function()
            {
               var background = $(color).val();   
               $(full).css("background-color", background);
            });
        }
    });
});
.彩盒{ 背景色:ffffff; 边框:纯色2px黑色; 最小高度:30px; 保证金:5px; } 颜色:
jQuery使用css选择器!但是看起来每个id都有不同的主题,为什么不在有多个id的情况下循环,只做一些类似$'.theme'+i.change。。。;?你的HTML元素不是嵌套的,不应该在里面吗?谢谢你的建议,但我想让它在选择颜色时改变颜色。这只加载颜色。有没有办法我也可以循环$函数{$'color1'。colorPicker{showHexField:false};$'color2'。colorPicker{showHexField:false};$'color3'。colorPicker{showHexField:false};$'color4'。colorPicker{showHexField:false};$'color5'。colorPicker{showHexField:false}@Bobby你试过$'.theme'.colorPicker{showHexField:false}吗?