Accès n-ième colonne de la table
J'ai une table avec la structure suivante et les données
<tr>
<td><input id="c1" type="checkbox"/></td>
<td>342</td>
<td>24</td>
<td>Jeff</td>
</tr>
<tr>
<td><input id="c2" type="checkbox"/></td>
<td>343</td>
<td>29</td>
<td>Libo</td>
</tr>
Je veux calculer la valeur totale de la troisième colonne de l'ensemble des lignes, qui sont vérifiés. Donc, en supposant que les deux lignes ci-dessus sont vérifiées, la valeur de la troisième colonne sera de 24+29=53
- êtes-vous limité à javascript ou utilisez-vous un tiers de la bibliothèque?
- Je me souviens clairement de la publier en jQuery mais je ne suis pas sûr de savoir comment il est devenu le javascript???
- J'ai changé le tag JavaScript parce que jQuery est tout simplement une bibliothèque JavaScript et il peut être fait facilement sans jQuery.
- Si il est à la recherche d'une solution en jQuery, il n'est pas approprié à marquer de nouveau dans cette voie de l'OMI. Par exemple, dans un site web à l'aide de jQuery pour tout, c'est bizarre, si quelqu'un commence à utiliser
getElementById
et d'autres façons de brut DOM accès. - Depuis, nous en citons facilement ici, je pense que ça peut être fait plus facilement avec jquery et profiter de sélecteurs css par exemple:nth-child et boucle à travers l'utilisation de $.chacun()
- pour les mêmes raisons, nous utilisons des sous-routines - pour simplifier les choses. Cela dit, j'avoue que c'est assez commun pour les gens à confondre le fait que jQuery est juste une bibliothèque javascript mais, si vous avez déjà eu à portée de main, pourquoi ne pas l'utiliser?
Vous devez vous connecter pour publier un commentaire.
Voir ce violon.
parseFloat
serait mieux de voir que nous ne savons pas si l'OP valeurs seront nécessairement des entiers.L'OP a demandé à ne compter que ceux qui sont vérifiés. Cette réponse ne compte vérifié les lignes.
Array::forEach
, le jQuery, la nécessité a diminué à mon avis.forEach
est un natif de la fonction JavaScript, et est doncgetElementById
.$.each
et le sélecteur jQuery API n'est pas natif, et, par conséquent, ne sera pas plus rapide queforEach
etgetElementById
.essayer cette
Bien que cela pourrait concaténant les valeurs de texte ensemble, de sorte qu'il peut être nécessaire de forcer le "texte" valeurs en nombres, en utilisant parseFloat, comme par l'autre réponse.
OK, et maintenant la poignée de la "cochées" le cadre de l'obligation (Dont j'ai oublié)
nth-child
pseudo-sélecteur et devrait être plus rapide que n'closest()
etattr()
les appels sont effectués.parseFloat
le résultat avant de l'ajouter.