使用javascript查找表行的最小值

时间:2014-03-18 03:49:07

标签: javascript jquery arrays

好了,目前我正在使用此代码来查找它,但我需要过滤掉空字段,以便所有空白的单元格都不会变红。

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

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

// then find their minimum
var min = Math.min.apply(Math, vals);

// tag any cell matching the min value
$td.filter(function highlight() {
    return +$(this).text() === min;
}).addClass('alert alert-danger');
});

那么如何过滤掉空值?

3 个答案:

答案 0 :(得分:2)

如果$('#asd').text()评估为""

然后+$('#asd').text()将评估为0


在整个表格中找到最小值

http://jsfiddle.net/6DgAW/

var vals = $('tr td').map(function () {
    return isNaN(parseInt($(this).text(), 10)) ? parseInt($(this).text(), 10) :  null;
}).get();

// then find their minimum
var min = Math.min.apply(Math, vals);

// tag any cell matching the min value
$('tr td').filter(function () {
    return parseInt($(this).text(), 10) === min;
}).addClass('alert alert-danger');

找到每行的最小值

http://jsfiddle.net/DggUN/18/

$('tr').each(function(){
    var vals = $('td,th',this).map(function () {
        return parseInt($(this).text(), 10) ? parseInt($(this).text(), 10) :  null;
    }).get();
    // then find their minimum
    var min = Math.min.apply(Math, vals);

    // tag any cell matching the min value
    $('td,th', this).filter(function () {
        return parseInt($(this).text(), 10) === min;
    }).addClass('alert alert-danger');
});

答案 1 :(得分:0)

我没有测试过这段代码

   var min=0; 
   $("tr").each(function(e){
     var tr = $(this);
     var valuses =$(this).find(".YourClassNameForTheParticularfield").html(); 
     if(!isNaN(Number(Values))) //NullChecking
     {
        if(min>Number(mark));
          {
            min = mark;
          }
      }
   });

isNaN检查它是否不是包含null或文本的数字,使用isNaN可以解决您的问题

答案 2 :(得分:0)

var rows = $("tr");
var minValArray = new Array();
for(var i = 0; i < rows.length; i++) {
    var row = rows[i];
    var elements = $(row).find("td");
    var min = 9999999999; // make this larger than other numbers in your table
    for(var j = 0; j < elements.length; j++) {
        if(!isNaN(parseInt($(elements[j]).text())) && parseInt($(elements[j]).text()) < min)
             min = parseInt($(elements[j]));
    }
    minValArray.push(min);
}

这应该给出数组中所有行的最小值。