所以有三个项目,with属性为data-fill
,每个项目都有一个跨度,类为.number
。如果值小于 20,则项目应为黑色,否则应为红色。任何想法如何使它们进入某种循环,以便它单独针对每个项目..?
if($(".item").attr('data-fill') < 20) {
$(".number").css("color", "black");
}
.number {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item" data-fill="19">
<span class="number">20</span>
</div>
<div class="item" data-fill="40">
<span class="number">40</span>
</div>
<div class="item" data-fill="30">
<span class="number">30</span>
</div>
您需要遍历元素并使用number
类设置相应的元素样式。
$(".item").each(function() {
if ($(this).attr('data-fill') < 20) {
$(this).find(".number").css("color", "black");
}
});
.number {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item" data-fill="19">
<span class="number">20</span>
</div>
<div class="item" data-fill="40">
<span class="number">40</span>
</div>
<div class="item" data-fill="30">
<span class="number">30</span>
</div>
为此,您需要记住几件事:
- 有多个
.item
元素,因此您需要遍历每个元素并使用类number
检查span
的值 - 您需要找到相应
.item
元素的.number
元素,以便仅更改该.number
元素的color
。 - 由于它是一个
data
属性,因此您可以使用.data()
而不是.attr()
:
var elem = $(".item");
$(elem).each(function(){
if($(this).data('fill') < 20){
$(this).find(".number").css("color", "black");
}
});
.number {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item" data-fill="19">
<span class="number">19</span>
</div>
<div class="item" data-fill="40">
<span class="number">40</span>
</div>
<div class="item" data-fill="30">
<span class="number">30</span>
</div>
<div class="item" data-fill="12">
<span class="number">12</span>
</div>
你可以使用 filter(( 来做到这一点:
$('.item').filter(function() {
return $(this).data('fill') < 20;
}).find('.number').css('color', 'black');
.number {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item" data-fill="19">
<span class="number">20</span>
</div>
<div class="item" data-fill="40">
<span class="number">40</span>
</div>
<div class="item" data-fill="30">
<span class="number">30</span>
</div>
或者,可以在没有JavaScript的情况下通过CSS执行此操作
.number {
color: red;
}
.item[data-fill^="1"]:not([data-fill="100"]) .number,
.item[data-fill="2"] .number,
.item[data-fill="3"] .number,
.item[data-fill="4"] .number,
.item[data-fill="5"] .number,
.item[data-fill="6"] .number,
.item[data-fill="7"] .number,
.item[data-fill="8"] .number,
.item[data-fill="9"] .number {
color: black;
}
<div class="item" data-fill="19">
<span class="number">19</span>
</div>
<div class="item" data-fill="40">
<span class="number">40</span>
</div>
<div class="item" data-fill="30">
<span class="number">30</span>
</div>