2016-04-05 9 views
0

Wie kann ich den höchsten Wert in einer Tabelle Spalte für Klasse erhalten? Ich habe versucht, die folgenden:Holen Sie den höchsten Wert von in Tabelle nach Klasse

HTML

<table> 
    <tr><td class="speed">1.1</td></tr> 
    <tr><td class="speed">3.1</td></tr> 
    <tr><td class="speed">5.5</td></tr> 
    <tr><td class="speed">2.0</td></tr> 
</table> 

jQuery/Javascript

function gethighestspeeds(){ 

    var speeds = $(".speed").map(function() { 
     return parseFloat(this.text, 10); 
    }).get(); 

    var highestspeed = Math.max.apply(Math, speeds); 
    alert(highestspeed) 
} 

Auch, wie kann ich alle Werte, wenn> als eine bestimmte Nummer?

+1

Verwenden '.filter()' – Rayon

+0

Würde ich '.filter()', wenn Werte < or > einen bestimmten Wert zu bekommen? –

+0

'return parseFloat ($ (this) .text(), 10);' –

Antwort

0

this.text ist nicht definiert für das td Element, Sie müssen parseFloat($(this).text(), 10);

function gethighestspeeds() { 
 

 
    var speeds = $(".speed").map(function() { 
 
    return parseFloat($(this).text(), 10); 
 
    }).get(); 
 

 
    var highestspeed = Math.max.apply(Math, speeds); 
 
    snippet.log('high: ' + highestspeed); 
 

 
    var num = 2.3; 
 
    var array = $(".speed").map(function() { 
 
    var flt = parseFloat($(this).text(), 10); 
 
    return flt > num ? flt : undefined; 
 
    }).get(); 
 
    snippet.log('array: ' + array) 
 

 
    //if you already have the speeds array 
 
    var array2 = speeds.filter(function(val) { 
 
    return num < val; 
 
    }); 
 
    snippet.log('array2: ' + array) 
 
} 
 
gethighestspeeds();
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td class="speed">1.1</td> 
 
    </tr> 
 
    <tr> 
 
    <td class="speed">3.1</td> 
 
    </tr> 
 
    <tr> 
 
    <td class="speed">5.5</td> 
 
    </tr> 
 
    <tr> 
 
    <td class="speed">2.0</td> 
 
    </tr> 
 
</table>
analysieren

+0

Das funktioniert super! Elegante Lösung. Danke, Arun –

0

Versuchen Sie, diese ........

var certainNumber=2.2; //Whatever you want to set 

function gethighestspeeds(){ 

    var speeds = $(".speed").map(function() { 
     return parseFloat(this.text, 10) > parseFloat(certainNumber); 
     }).get(); 


} 
+0

Es muss 'this.textContent' sein – Rayon

0

Sie haben zu verwenden: $(this).text() statt this.text in Ihrer map Funktion:

return parseFloat($(this).text(), 10); 
+0

Ich sehe meinen Fehler jetzt. Vielen Dank! –

Verwandte Themen