我想在值变为负数时添加“红色”颜色,为正值添加“绿色”颜色。我做了很多尝试来弄清楚为什么它不起作用但没有成功。
请更正我的脚本。下面的代码有什么问题:
<!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/