Можно ли изменить фон <td>, если результат поля отличен или равен другому полю?

Я показываю mySQL в таблице html.

Я хотел бы изменить цвет фона TD от $ qty до красного IF $qty >= $max or $qty =< $min .

Есть ли простой способ сделать это с помощью jQuery или PHP?

Я упростил таблицу и PHP для моего примера:

 <table id="tablesorter-demo"> <tr><td>'.$min.'</td><td>'.$max.'</td><td>'.$qty.'</td></tr> </table> 

 var min = $('table tr td:eq(0)').text(); var max = $('table tr td:eq(1)').text(); var qty = $('table tr td:eq(2)').text(); if (qty >= max || qty <= min ) { $('table tr td:eq(2)').css('background-color', 'red'); } 

http://jsfiddle.net/7vUFS/3/

 <?php $class = (($qty >= $max) || ($qty <= min)) ? ' class="red"' : ''; ?> <tr><td>....</td><td<?php echo $class ?>><?php echo $qty ?></td></tr> 

Я знаю, что у вас есть ваш ответ, но лучше было бы написать собственный виджет табличного указателя, который выделяет ячейки таблицы с плохим количеством. Вот демонстрация и код:

 $.tablesorter.addWidget({ id : "qty", format: function(table){ var i, $td, cur, c = table.config, cols = c.widgetQty, $tr = $(table).children('tbody').children('tr'), rows = $tr.length; for (i = 0; i < rows; i++){ $td = $tr.eq(i).find('td'); cur = parseInt( $td.eq(cols[2]).text(), 10); // current if (cur <= parseInt( $td.eq(cols[0]).text(), 10) || // min cur >= parseInt( $td.eq(cols[1]).text(), 10) ){ // max $td.eq(cols[2]).addClass('badqty'); } } } }); $('table').tablesorter({ widgets : [ 'zebra', 'qty' ], widgetQty : [ 0, 1, 2 ] // min, max, current qty column indexes });​