【问题标题】:change color with if statement jquery [duplicate]用if语句jquery改变颜色[重复]
【发布时间】:2020-06-20 09:07:23
【问题描述】:

为什么背景颜色没有变成绿色?

var id;
id = setInterval(changeColor, 1000);

function changeColor(){
  var elem= $("#target");         

  var color = elem.css('background-color');
  if (color == 'rgb(255,0,0)')
    elem.css('background-color','green');
  else
    elem.css('background-color', 'red');
}

【问题讨论】:

  • 您是否遇到任何控制台错误?,changeColor() 是否正在运行?
  • 它正在运行@RamondeVries
  • #target 上是否有任何 !important 使用的样式?

标签: javascript html jquery css


【解决方案1】:

试试这个:

var id;
id = setInterval(changeColor, 1000);

function changeColor(){
  var elem= $("#target");         

  var color = elem.css('background-color');
  if (color == 'rgb(255, 0, 0)')
    elem.css('background-color','green');
  else
    elem.css('background-color', 'red');
}

if 语句检查了错误的条件:'rgb(255,0,0)' vs 'rgb(255, 0, 0)'

【讨论】:

  • 你的代码完全一样
  • 不行,if条件不一样,仔细检查一下
  • 刚刚注意到 .css 用空格返回它。我的错。我正在考虑设置它在没有空格的情况下也可以工作
【解决方案2】:

尝试检查 rgba 而不是 rgb。

<html>

<head>
    <title>Change Color</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <script>
       function changeColor(){
            var elem= $("#target");         
        
            var color = elem.css('background-color');
            
            if (color == 'rgba(0, 0, 0, 0)')
                elem.css('background-color','green');
            else
                elem.css('background-color', 'red');
           
        }

        $(document).ready(function () {
            var id;
            id = setInterval(changeColor, 1000);
        });
    </script>
</head>

<body>
   <div id="target">Welcome to JavaScript!!!</div>
    <!--.div-row -->


</body>

【讨论】:

  • rgb 应该可以工作,如果不行,它仍然会运行 else,仍然显示输出
猜你喜欢
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
相关资源
最近更新 更多