J'apprends jquery et j'ai trouvé le problème de stocker des données de tableau html dans un tableau 2D. Au lieu d'utiliser des boucles imbriquées, je cherchais des fonctions jquery qui me permettraient de faire la même chose. J'ai trouvé this method qui semble faire le travail.Stockage sélectif des données de table dans le tableau 2d
var tRows = $('tr').map(function() {
return [$(this).find('td').map(function() {
return $(this).text()
}).get()]
}).get()
console.log(tRows)
I'd like to know, how I can use a condition, in the given code, to check if the first
td
of atr
is empty or not (or some other condition in general) and thus not add that row to the final array.
EDIT:
Lire les commentaires et la construction sur this fiddle, j'ai maintenant
var tRows = $('tr').map(function() {
var arr = $(this).find('td').map(function() {
return $(this).text()
}).get();
if (arr[0].length) return[arr];
}).get()
Cela fonctionne un peu, mais j'espérais vérifier l'état de la carte intérieure et renvoyer une valeur NULL au lieu du tableau entier. Du discussion here, il semble qu'il n'est pas possible d'annuler l'appel de carte interne à mi-chemin, et il retournera le tableau entier. On dirait que les boucles pourraient être mieux à la fin pour ce travail, ou ai-je raté quelque chose?
'map()' prend paramètre qui vous donne l'index de l'élément en cours afin que vous puissiez l'utiliser et vérifier la longueur du texte comme https: // jsFiddle .net/Lg0wyt9u/1816/ –
@NenadVracar Oh, je voulais dire en fait ne pas ajouter la rangée entière ie le tableau au tableau 2d, au lieu de la cellule. Mais je vais essayer de construire sur le violon pour y parvenir. –
'return return $ (this) .text() || undefined' – Thomas