38

我希望part 1onclick div 样式发生变化,然后part 2再次单击它恢复正常。我试过这样做,但我没有达到part 2结果。

以下是Javascript代码

function abc() {
    document.getElementById("test").style.color="red";
}

再次单击测试 div 后,颜色应恢复为默认颜色,即黑色...

4

7 回答 7

55
function abc() {
    var color = document.getElementById("test").style.color;
    if (color === "red")
         document.getElementById("test").style.color="black";
    else
         document.getElementById("test").style.color="red";
}
于 2012-04-09T09:28:56.377 回答
3

使用 jQuery:

$(document).ready(function(){
    $('div').click(function(){
        $(this).toggleClass('clicked');
    });
});​

活生生的例子

于 2012-04-09T09:35:49.680 回答
1

有一些逻辑来检查颜色或有一些标志,

function abc() {
    var currentColor = document.getElementById("test").style.color;

    if(currentColor == 'red'){
    document.getElementById("test").style.color="black";
    }else{
   document.getElementById("test").style.color="red";

    }
}
于 2012-04-09T09:30:49.680 回答
1
function abc() {
    var color = document.getElementById("test").style.color;
    color = (color=="red") ? "black" : "red" ;
    document.getElementById("test").style.color= color;
}
于 2012-04-09T09:35:04.360 回答
0

您可以在单击更改颜色之前检查颜色。

function abc(){
     var color = document.getElementById("test").style.color;
     if(color==''){
         //change
     }else{
         //change back
     }
}
于 2012-04-09T09:30:49.493 回答
0

一个简单的 switch 语句应该可以解决问题:

function abc() {
    var elem=document.getElementById('test'),color;
    switch(elem.style.color) {
        case('red'):
            color='black';
            break;
        case('black'):
        default:
            color='red';
    }
    elem.style.color=color;
}
于 2012-04-09T09:33:28.113 回答
0

最好更改元素的类(.regular 为黑色,.alert 为红色):

function abc(){
  var myDiv = document.getElementById("test");
  if (myDiv.className == 'alert') {
    myDiv.className = 'regular';
  } else {
    myDiv.className = 'alert';
  }
}
于 2012-04-09T09:35:35.280 回答