2010-10-27 6 views
6

मेरे पास एक HTML तालिका कॉलम है जिसमें पूर्णांक हैं। जावास्क्रिप्ट या JQuery का उपयोग कर न्यूनतम मूल्य प्राप्त करने का सबसे प्रभावी तरीका क्या है?कॉलम में न्यूनतम मान पाएं

उत्तर

9

jQuery का उपयोग करके आप use the .map() methodthe .get() method साथ पूर्णांकों की एक सरणी then .apply() तर्क for Math.min न्यूनतम प्राप्त करने के लिए के रूप में सरणी प्राप्त करने के लिए कर सकता है।

यह मानता है कि आप तालिका में पहला कॉलम चाहते हैं। आप जिस कॉलम को चाहते हैं उसके आधार पर चयनकर्ता को बदलने की आवश्यकता हो सकती है।

उदाहरण:http://jsbin.com/iyiqa3/

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

var minimum = Math.min.apply(null, values); 
jQuery के बिना

, इस प्रयास करें:

उदाहरण: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 'Math.min() 'में एक सरणी पास करने के लिए' लागू()' का उपयोग करने के लिए +1 ... चालाक। –

1

गैर jQuery जवाब (और कोई गारंटी यह "है सबसे अधिक "कुशल, लेकिन बुरा नहीं होना चाहिए):

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

मैं, सादे जावास्क्रिप्ट, टेबल की प्रत्येक पंक्ति के माध्यम से चलाने के साथ जाना होगा स्तंभ में आपकी रुचि है पर देखो और कम से कम लगता है:

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; 
} 

इसमें यह माना जाता प्रत्येक <td> वास्तव में होता है एक मूल्य और कोई अन्य HTML टैग नहीं।

+0

प्रत्येक टीडी का नोड वैल्यू शून्य है। – kennebec

+0

@kennebec: ओह, 'firstChild' भूल गए। धन्यवाद। – casablanca