我想在值变为负数时添加“红色”颜色,为正值添加“绿色”颜色。我做了很多尝试来弄清楚为什么它不起作用但没有成功。

请更正我的脚本。下面的代码有什么问题:

<!DOCTYPE html>
<html>
<head>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function () {
$(".status")
    .filter(function () {
    return $(this).html() < 0;
})
    .parent().css('color', 'blue');
});
</script>

</head>
<body>

<span class="status">10</span><br />
<span class="status">-1</span>

</body>
</html>

最佳答案

代码的主要问题是将字符串(html()的值)与整数进行比较。您还可以通过为addClass()提供处理逻辑的函数来简化代码。尝试这个:



$(".status").addClass(function() {
  return parseInt($(this).html(), 10) < 0 ? 'negative' : 'positive';
});

.positive { color: #0C0; }
.negative { color: #C00; }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="status">10</span><br />
<span class="status">-1</span>





请注意,从技术上讲,这将0视为“正”值。如果您不想这样做,可以轻松更改addClass()处理函数中的逻辑。

关于javascript - JavaScript&CSS-我这样做正确吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42962967/

10-10 05:21