使用不同的颜色</div>切换每个<div>标记

时间:2014-01-24 12:18:03

标签: javascript jquery html css html5

我要求将点击的<div>的颜色从红色切换为绿色&amp;绿色到红色。我在我的页面中使用jquery。请建议我使用最好的代码来满足要求。

我的代码如下:

<htmL>

<head>

    <script src="jquery-1.10.2.js">
        window.onload = initPage;

        function initPage() {

        }


        function tileclick() {

        }
    </script>
    <style>

        div.table{
            display: table;
        }
        div.row{
             display: table-row;
            border-style:solid;
            border-color: black;
            border-width:15px;
            padding-top:35px;
            padding-bottom:35px;
            padding-right:50px;
            padding-left:50px;
            margin-top:25px;
            margin-bottom:25px;
            margin-right:50px;
            margin-left:50px;
        }


        div.cell{
            display: table-cell;
            border-style: solid;
            border-width:15px;
            padding-left: 30px;
            padding-right: 30px;
            padding-top: 30px;
            padding-bottom: 30px;
            font-weight:5000;
            font-size:200%;
            background: #00FF00;


        }

    </style>
</head>
<body>
    <div id="table" class="table">

        <div id="r1" class="row">
            <div id="sys55" class="cell">55
            </div>
            <div id="sys56" class="cell">56
            </div>
            <div id="sys57" class="cell">57
            </div>
            <div id="sys58" class="cell">58
            </div>
            <div id="sys59" class="cell">59
            </div>
            <div id="sys60" class="cell">60
            </div>
            <div id="sys61" class="cell">61
            </div>
            <div id="sys62" class="cell">62
            </div>
            <div id="sys63" class="cell">63
            </div>
            <div id="sys64" class="cell">64
            </div>
            <div id="sys65" class="cell">65
            </div>
        </div>

        <div id="r2" class="row">
            <div id="sys54" class="cell">54
            </div>
            <div id="sys53" class="cell">53
            </div>
            <div id="sys52" class="cell">52
            </div>
            <div id="sys51" class="cell">51
            </div>
            <div id="sys50" class="cell">50
            </div>
            <div id="sys49" class="cell">49
            </div>
            <div id="sys48" class="cell">48
            </div>
            <div id="sys47" class="cell">47
            </div>
            <div id="sys46" class="cell">46
            </div>
            <div id="sys45" class="cell">45
            </div>
            <div id="sys44" class="cell">44
            </div>
        </div>

        <div id="r3" class="row">
            <div id="sys33" class="cell">33
            </div>
            <div id="sys34" class="cell">34
            </div>
            <div id="sys35" class="cell">35
            </div>
            <div id="sys36" class="cell">36
            </div>
            <div id="sys37" class="cell">37
            </div>
            <div id="sys38" class="cell">38
            </div>
            <div id="sys39" class="cell">39
            </div>
            <div id="sys40" class="cell">40
            </div>
            <div id="sys41" class="cell">41
            </div>
            <div id="sys42" class="cell">42
            </div>
            <div id="sys43" class="cell">43
            </div>
        </div>

        <div id="r4" class="row">
            <div id="sys32" class="cell">32
            </div>
            <div id="sys31" class="cell">31
            </div>
            <div id="sys30" class="cell">30
            </div>
            <div id="sys29" class="cell">29
            </div>
            <div id="sys28" class="cell">28
            </div>
            <div id="sys27" class="cell">27
            </div>
            <div id="sys26" class="cell">26
            </div>
            <div id="sys25" class="cell">25
            </div>
            <div id="sys24" class="cell">24
            </div>
            <div id="sys23" class="cell">23
            </div>
            <div id="sys22" class="cell">22
            </div>
        </div>

        <div id="r5" class="row">
            <div id="sys11" class="cell">11
            </div>
            <div id="sys12" class="cell">12
            </div>
            <div id="sys13" class="cell">13
            </div>
            <div id="sys14" class="cell">14
            </div>
            <div id="sys15" class="cell">15
            </div>
            <div id="sys16" class="cell">16
            </div>
            <div id="sys17" class="cell">17
            </div>
            <div id="sys18" class="cell">18
            </div>
            <div id="sys19" class="cell">19
            </div>
            <div id="sys20" class="cell">20
            </div>
            <div id="sys21" class="cell">21
            </div>
        </div>

        <div id="r6" class="row">
            <div id="sys10" class="cell">10
            </div>
            <div id="sys09" class="cell">09
            </div>
            <div id="sys08" class="cell">08
            </div>
            <div id="sys07" class="cell">07
            </div>
            <div id="sys06" class="cell">06
            </div>
            <div id="sys05" class="cell">05
            </div>
            <div id="sys04" class="cell">04
            </div>
            <div id="sys03" class="cell">03
            </div>
            <div id="sys02" class="cell">02
            </div>
            <div id="sys01" class="cell">01
            </div>
        </div>
    </div>
</body>
</html>

我的初始页面应显示为绿色,如下所示。

Green at initial stage

单击时,每个块应切换为绿色至红色。反之亦然。

请帮助我达到这个要求。

5 个答案:

答案 0 :(得分:4)

您可以使用start with selector来匹配ID以sys开头的所有div,然后使用toggleClass切换类。

代码:

$("div[id^='sys']").click(function(){
    $(this).toggleClass("cell cell2");
});

演示:http://jsfiddle.net/IrvinDominin/tsL8a/

答案 1 :(得分:2)

在jquery中使用toggleClass()

    <style>
.red{
    background : red;
}
</style>

    $(function() { 
         $(".cell").on("click" , function(e) {                    
              $(this).toggleClass("cell red");    
         });    
    });

答案 2 :(得分:1)

您可以使用jQuery toggleClass方法(See the doc)。

为红色单元格添加一个类,如:

.red_cell {
  background-color: red;
}

然后像:

$('.cell').click(function() {
  $(this).toggleClass('red_cell');
});

答案 3 :(得分:1)

使用:

$(".cell").click(function(){
       var clr = $( this ).css("background-color").toString(); 
       var clr = (clr == "rgb(0, 255, 0)" ? "rgb(255,0,0)" : "rgb(0, 255, 0)");
       $(this).css({
        "background":""+clr+""
        });

});

不改变css标记。

DEMO。希望它能帮到你。干杯!

答案 4 :(得分:1)

 $(".cell").click(function(){
     if($(this).hasClass('red')) {
         $(this).removeClass('red');
     }else{
         $(this).addClass('red');
     }
});

只需在CSS中添加一个类。