2010-10-27 21 views

cevap

9

, sen the .get() method ile use the .map() method tamsayı dizisi, argümanlar for Math.min minimum almak olarak then .apply() Diziyi almak başladı.

Bu, tablodaki ilk sütunu istediğinizi varsayar. Seçicinin, istediğiniz sütuna bağlı olarak değişmesi gerekebilir.

Örnek:http://jsbin.com/iyiqa3/

jQuery olmadan
var values = $('#myTable tr > td:first-child').map(function() { 
    return parseInt($.text([this])); 
}).get(); 

var minimum = Math.min.apply(null, values); 

, şunu deneyin:

Örnek:http://jsbin.com/iyiqa3/2/

var values = []; 

var trs = document.getElementById('myTable').getElementsByTagName('tr'); 

for(var i = 0, len = trs.length; i < len; i++) { 
    values.push(parseInt(trs[ i ].cells[ 0 ].innerHTML)); 
} 

var minimum = Math.min.apply(null, values); 
+0

+1, bir diziyi Math.min() '... zle 'ye geçirmek için' apply()' işlevini kullanmak için. –

1

Olmayan jquery cevap (ve "dir hiçbir garanti Çoğu "verimli, ama kötü olmamalı":

var min, rowNo = null; 

var a = table.getElementsByTagName("TR"); 
for (var i=0; i<a.length; i++) { 
var td = a[i].childNodes[columnNo]; 
var val = parseInt(td.innerHTML); 
if (rowNo == null || val < min) { 
    min = val; 
    rowNo = i; 
    } 
} 
0

Ben ilgilendiğiniz sütununa bakın, tablonun her satırı üzerinden çalışmasını düz JavaScript ile gidip minimum bulur: Bu varsayar

function getColumnMin(tableId, columnIndex) { 
    var table = document.getElementById(tableId); 
    var rows = table.getElementsByTagName('tr'); 

    var min = Infinity; 
    for (var i = 0; i < rows.length; i++) { 
    var cols = rows[i].getElementsByTagName('td'); 
    var value = (cols[columnIndex].firstChild.nodeValue | 0); // force to integer value 
    if (value < min) 
     min = value; 
    } 
    return min; 
} 

her <td> tam içerdiğini bir değer ve başka hiçbir HTML etiketi.

+0

Her td'nin nodeValue değeri boş. – kennebec

+0

@kennebec: Oops, 'firstChild'ı unuttum. Teşekkürler. – casablanca