comportamento strano filtro () su un tavolo

voti
47

Qualcuno può guardare il mio demo e mi dica perché il mio cellulare non è sempre evidenziato?

$(#tbl td.rank).filter(function () {
    return $(this).text() > 30;
}).addClass('bright');

http://jsfiddle.net/qmftvxyd/6/

Io fondamentalmente voglio evidenziare la cella il cui rango> 30

Aggiornamento: cambiato collegamento demo come classe era stato erroneamente citato

È pubblicato 10/11/2014 alle 05:06
dall'utente
In altre lingue...                            


3 risposte

voti
2

Hai qualche errore:

1) La tua selettore è sbagliato. È possibile aggiungere tr(opzionale) e anche non c'è td con classe.rank

2) Per confrontare il testo di ciascuna tdbisogna prima convertire in un numero utilizzando parseInt .

$("#tbl tr td.age").filter(function() {
  return parseInt($(this).text(), 10) > 30;
}).addClass('bright');
.bright {
  color: red !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="tbl">
  <thead>
    <tr>
      <th class="id">EmpNo</th>
      <th class="name">First Name</th>
      <th class="rank">Rank</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="id">E342</td>
      <td class="name">Bill</td>
      <td class="age">35</td>
    </tr>
    <tr>
      <td class="id">E343</td>
      <td class="name">Laura</td>
      <td class="age">26</td>
    </tr>
  </tbody>
</table>

Risposto il 10/11/2014 a 05:10
fonte dall'utente

voti
0

Si utilizza classe sbagliata per filtrare. Si dovrebbe usare td.age. DEMO

 $("#tbl td.rank").filter(function () {
     return parseInt($(this).text(),10) > 30;
  }).addClass('bright');
Risposto il 10/11/2014 a 05:11
fonte dall'utente

voti
1

Credo che hai solo bisogno di convertire il rango di controllo a un numero intero in modo che il valore potrebbe essere paragonato. cercare di cambiare il colore del testo corrispondente TD a qualcosa d'altro come il rosso a notare l'effetto. prova questo:

$("#tbl td.rank").filter(function () {
    return parseInt($(this).text()) > 30;
}).addClass('bright');

dimostrazione

Risposto il 10/11/2014 a 05:30
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more