Применить класс к наибольшему значению по отдельным столбцам - PullRequest
0 голосов
/ 05 октября 2011

У меня есть код, который уже работает, но я хотел бы изменить дизайн моей страницы, при этом скрипт класса add не работает.Вот что у меня есть для дизайна:

<tr>
    <td>Item 1</td>
    <td>&pound;<?php echo $row1['item1']; ?></td>
    <td>&pound;<?php echo $row2['item1']; ?></td>
    <td>&pound;<?php echo $row3['item1']; ?></td>
    <td>&pound;<?php echo $row4['item1']; ?></td>
    <td>Item 2</td>
    <td>&pound;<?php echo $row1['item2']; ?></td>
    <td>&pound;<?php echo $row2['item2']; ?></td>
    <td>&pound;<?php echo $row3['item2']; ?></td>
    <td>&pound;<?php echo $row4['item2']; ?></td>
    <td>Item 3</td>
    <td>&pound;<?php echo $row1['item3']; ?></td>
    <td>&pound;<?php echo $row2['item3']; ?></td>
    <td>&pound;<?php echo $row3['item3']; ?></td>
    <td>&pound;<?php echo $row4['item3']; ?></td>
</tr>

Вот код jQuery, который у меня есть:

 <script type='text/javascript'>
  //<![CDATA[ 
  $(window).load(function(){
  (function($) {
    $.fn.max = function(callback) {
        var max = null,
            maxIndex = null;

        this.each(function() {
            var value = callback.call(this);
            if (+value === value) {
                if (!max || value > max) {
                    max = value;
                    maxIndex = $(this).index();
                }
            }

        });
        return max !== null ? this.eq(maxIndex) : $();
    };
}(jQuery));


$('tr').each(function() {
    $(this).children('td').max(function() {
        var value = +$(this).text().substr(1);
        if (!isNaN(value)) {
            return value;
        }
    }).addClass('green bold');
});
  });
  //]]> 
  </script>

Это работает, но только для каждого tr, то есть выделяет самый высокийзначение в каждой строке, где, как мне нужно, чтобы выделить наибольшее значение в каждой группе (пункты 1, 2 и 3).

Можно ли изменить код, чтобы это работало?

1 Ответ

0 голосов
/ 05 октября 2011

Попробуйте циклически проходить через ТД без предварительного прохождения через ТР:

$('table').find('td').max(function() {
    var value = +$(this).text().substr(1);
    if (!isNaN(value)) {
        return value;
    }
}).addClass('green bold');
...