javascript - 使用 JavaScript 测试 CSS 颜色

标签 javascript css

这是一个简单的 HTML/JavaScript 文件:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

<title>Javascript</title>
<script type="text/javascript" src="jquery.min.js"></script>
<style>  
.red {
    color:rgb(255,0,0); 
}
</style> 
</head> 
<body> 
    <p class="red">The quick brown fox jumped over the lazy developer.</p>

    <script type="text/javascript"> 
    $("p").each (function (index,element) {
        var color = $(element).css("color");
        alert("color=" + color); //the alert says color=rgb(255,0,0)
        if (color==rgb(255,0,0)) {
            alert("color is rgb(255,0,0)"); 
           //this alert never fires and the  code never gets here.
            $(element).css("color","#000000");
            $(element).css("background-color","#ffff00");
        } 
    });
</script> 
</body> 
</html> 

为什么测试 if (color==rgb(255,0,0) 失败?颜色不是 rgb(255,0,0) 吗?如果测试显示 color="red",似乎也很重要。

最佳答案

.css("color") 的调用返回一个字符串,因此您必须将它与字符串进行比较。此外,由于您正在进行字符串比较,因此空格很重要:rgb(255,0,0) !== rgb(255, 0, 0)

这很好用:

$('document').ready(function() {

  $("p").each(function(index, element) {
    var color = $(element).css("color");
    alert('color=' + color);
    if (color == 'rgb(255, 0, 0)') {
      alert("color is rgb(255,0,0)");

      $(element).css("color", "#000000");
      $(element).css("background-color", "#ffff00");
    }
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<style>
  .red {
    color: rgb(255, 0, 0);
  }
</style>

<p class="red">The quick brown fox jumped over the lazy developer.</p>

关于javascript - 使用 JavaScript 测试 CSS 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38252190/

相关文章:

javascript - 如何显示和链接对象的某个属性

javascript - Highcharts 中样条图上的重叠数据

css - 如何在底部设置页脚?

CSS 显示内联 block 问题与 IE

javascript - 谷歌地图标记显示/隐藏

CSS float Div 问题

javascript - 居中和隐藏图像,适合 div 大小

javascript - 相对于页面上的另一个 div 滚动 div

javascript - 如何获取突出显示文本所在的元素?

javascript - 如何在保持顺序的同时进行并发 Node.js 流处理?