[英]Changing CSS value based on div value
我正在嘗試根據從php數據庫查詢中提取的div的值更改css網格中單元格的背景。我正在使用jquery與另一個div實現相同的功能,但唯一的區別是要比較的值是css中的相同div。 這是html的div結構。 box datetime
是box a
的子級。
<div class='box a'>
<div class='box name'><a style='text-decoration:none; color:#444;' href='foobar.com' target='_blank'>Proper Name</a></div>
<div class='box mm'>75.49</div>
<div class='sog'>10.2</div>
<div class='box datetime'>1</div>
這是我正在使用的功能。
$('.datetime').each(function(index, value) {
var value = Number($(this).text());
console.log(value);
if (value < 4)
$('.a').css('background-color', '#fff');
else if (value >= 4 && value <= 15)
$('.a').css('background-color', 'orange');
else
$('.a').css('background-color', 'purple');
});
.datetime
是一個整數,表示2倍之間的分鍾數。 .a
是我要更改其css屬性的css網格單元。 目前,它只會將所有.a
背景顏色變成#fff。 它將無法正確評估。 我究竟做錯了什么?
嘗試這個:
var value = Number($('.datetime').text());
//console.log(value);
if (value < 4)
$(".a", '.datetime').css('background-color', '#fff');
else if (value >= 4 && value <= 15)
$(".a", '.datetime').css('background-color', 'orange');
else
$(".a", '.datetime').css('background-color', 'purple');
..如果您只有一個小組,則不需要每個小組
您正在所有.a
元素上設置樣式。 循環中的最后一個值確定所有.a
元素的值。 要單獨設置他們每個.datetime
,得到父( .a
各)元素.datetime
:
$('.datetime').each(function(index, value) {
var value = Number($(this).text());
console.log(value);
var $elem = $(this).parent();
if (value < 4)
$elem.css('background-color', '#fff');
else if (value >= 4 && value <= 15)
$elem.css('background-color', 'orange');
else
$elem.css('background-color', 'purple');
});
您正在從.each
傳遞值,但覆蓋了下一行的值。 另外,由於您已經排除了值不< 4
情況,因此無需檢查該值是否<= 4
等於< 4
。 但是我認為您的代碼無法正常工作的原因是因為您將所有.a
更改為最后處理的元素所指定的顏色:
$('.datetime').each(function(index, value) { var textValue = parseInt($(value).text()); if (textValue < 4) { $(value).parent(".a").css('background-color', '#fff'); } else if (textValue <= 15) { $(value).parent(".a").css('background-color', 'orange'); } else { $(value).parent(".a").css('background-color', 'purple'); } });
body { background-color: green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class='box a'> <div class='box name'><a style='text-decoration:none; color:#444;' href='foobar.com' target='_blank'>Proper Name</a></div> <div class='box mm'>75.49</div> <div class='sog'>10.2</div> <div class='box datetime'>3</div> </div> <div class='box a'> <div class='box name'><a style='text-decoration:none; color:#444;' href='foobar.com' target='_blank'>Proper Name</a></div> <div class='box mm'>75.49</div> <div class='sog'>10.2</div> <div class='box datetime'>12</div> </div> <div class='box a'> <div class='box name'><a style='text-decoration:none; color:#444;' href='foobar.com' target='_blank'>Proper Name</a></div> <div class='box mm'>75.49</div> <div class='sog'>10.2</div> <div class='box datetime'>18</div> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.