comportement étrange filtre () sur une table

voix
47

Quelqu'un peut-il s'il vous plaît regarder ma démo et me dire pourquoi ma cellule ne reçoit pas mis en évidence?

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

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

Je veux essentiellement de mettre en évidence la cellule dont le rang> 30

Mise à jour: Changé lien démo en tant que classe avait été à tort mentionné

Créé 10/11/2014 à 05:06
utilisateur
Dans d'autres langues...                            


3 réponses

voix
2

Vous avez quelques erreurs:

1) Votre sélection est erroné. Vous pouvez ajouter tr( en option) et aussi il n'y a pas td avec classe.rank

2) Pour comparer le texte de chaque tdvous devez d' abord convertir en un numéro à l' aide 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>

Créé 10/11/2014 à 05:10
source utilisateur

voix
0

Vous utilisez mauvaise classe pour filtrer. Vous devriez utiliser td.age. DEMO

 $("#tbl td.rank").filter(function () {
     return parseInt($(this).text(),10) > 30;
  }).addClass('bright');
Créé 10/11/2014 à 05:11
source utilisateur

voix
1

Je suppose que vous avez juste besoin de convertir le rang de vérification à un nombre entier de sorte que pourrait être comparé à la valeur. essayez de changer la couleur du texte correspondant TD à autre chose comme le rouge à remarquer l'effet. essaye ça:

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

Demo

Créé 10/11/2014 à 05:30
source utilisateur

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