如果有最大的int,则在其中添加css类到-jquery

时间:2013-05-02 14:26:18

标签: javascript jquery html css

我有一张数据表,我试图一目了然地查看它并找到每行的最高数字。

要做到这一点,我将一个名为highest的css类添加到最高<td>这样的

  <tr>
      <td>4.2</td>
      <td class="highest">5.0</td>
      <td>2.9</td>
  </tr>

用这个css

td.highest {font-weight:bold;}

但是这些都是硬编码的,我正在尝试使用jquery来解决这个问题,但我对js很新,并且不确定要开始,我正在考虑使用Math.max但是因为我可以告诉那些在数组上使用,而不是读取HTML,任何想法?

我在这里制作了一个jsfiddle - http://jsfiddle.net/pudle/vEUUQ/

4 个答案:

答案 0 :(得分:7)

第一次打击 - 可能有更短(也可能更有效)的答案......

$('tr').each(function() {
    var $td = $(this).children();

    // find all the values
    var vals = $td.map(function() {
        return +$(this).text();
    }).get();

    // then find their maximum
    var max = Math.max.apply(Math, vals);

    // tag any cell matching the max value
    $td.filter(function() {
        return +$(this).text() === max;
    }).addClass('highest');
});

演示http://jsfiddle.net/alnitak/DggUN/

答案 1 :(得分:1)

基于这种结构:

<table>
    <tr>
      <td>4.2</td>
      <td>5.0</td>
      <td>2.9</td>
  </tr>
</table>

您可以使用JS / jQuery并执行:

var highest = 0;

$("table tr td").each(function() {
     var current = $(this).text();
    if (current > highest) {
       highest = current;
       $(".highest").removeClass();
       $(this).addClass('highest');   
    }
});

http://jsfiddle.net/syU82/

答案 2 :(得分:0)

我能想到的最简单的事情是使用http://underscorejs.org/#maxhttp://lodash.com/docs#max并传入一个过滤此功能的函数。

var result = _.max($("td"),function(td){ return parseFloat($(td).text()); });
result.addClass("highest");

否则你可以做很多事情:

var result,max 0;
$("td").filter(function(){
   var myval = parseFloat($(this).text());
   if(myval > max){
      result = this;
      max = myval;
   }
});
result.addClass("highest");

答案 3 :(得分:0)

另一种解决方案,虽然不如其他一些解决方案。

$('tr').each(function() {
    var $highest_el;
    var highest_num;

    $('td', this).each(function() {
        if ( $highest_el === undefined || parseFloat($(this).text()) > highest_num ) {
            $highest_el = $(this);
            highest_num = $(this).text();
        }
    });

    $highest_el.addClass('highest');
});

jsFiddle:http://jsfiddle.net/hRJLQ/2/