J'ai plusieurs tables sur mon fichier html, maintenant je voulais juste voir combien d'éléments td il y a dans chaque table. J'essaye ce code:
function process() {
  let arr= $('table');
  for(let i=0; i<arr.length; i++) {
let table = arr[i];
let cells = table.find('tr').find('td');
    console.log(cells.length);
  }
}
Mais j'obtiens une erreur car find n'est pas une erreur de fonction à table.find ('tr'). Find ('td');
Quelle est la bonne façon de résoudre ce problème?
3 Réponses :
Pouvez-vous essayer comme ça
function process() {
let tables = $('table');
for(let i=0; i<tables.length; i++) {
let table = tables[i];
let cells = $(table).find('tr > td');
console.log(cells.length);
}
}
Vous devez expliquer pourquoi cela est nécessaire, sinon c'est presque une réponse de code uniquement, qui est considérée comme de faible qualité
Voici une façon pure jQuery de faire cela:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table border=1>
<tr>
<td>test1</td>
<td>test1</td>
<td>test1</td>
<td>test1</td>
</tr>
<tr>
<td>test1</td>
<td>test1</td>
<td>test1</td>
<td>test1</td>
</tr>
</table>
<table border=1>
<tr>
<td>test1</td>
<td>test1</td>
<td>test1</td>
<td>test1</td>
</tr>
<tr>
<td>test1</td>
<td>test1</td>
<td>test1</td>
<td>test1</td>
</tr>
</table>
<table border=1>
<tr>
<td>test1</td>
<td>test1</td>
<td>test1</td>
<td>test1</td>
</tr>
<tr>
<td>test1</td>
<td>test1</td>
<td>test1</td>
<td>test1</td>
</tr>
</table>
totalCount = 0;
$('table').each(function(a, b) {
totalCount += $(b).find('td').length
})
console.log(totalCount)
totalCount = 0;
$('table').each(function(a, b) {
totalCount += $(b).find('td').length
})
console.log(totalCount)
Lorsque vous exécutez Pour résoudre ce problème, vous devez utiliser Personnellement, je préconise l'utilisation de laisser la table = tables [i]; code> p>
[#] code> sur un objet JQuery, le résultat est que l'élément de la pile de résultats est tiré de l'objet JQuery et n'est plus enveloppé d'un. Donc, à ce stade, vous ne pouvez pas utiliser les méthodes de jQuery sur elle, si ces méthodes sont définies sur le jquery.fn code> portée. P>
Tableaux.eq (i) code> pour obtenir l'élément, comme eq () code> garde l'élément dans un objet jQuery ou mettre L'élément de retour dans un $ () code> pour l'envelopper à nouveau. p>
EQ () code>, car il s'agit d'une étape de moins que vous devez écrire pour la relancer. p>
Tables [I] CODE> doit êtreTableaux.EQ (I) CODE> Si vous en avez besoin de rester comme un objet JQuery pour continuer à utiliser les méthodes de JQuery.