2010-01-25 2 views
0

J'essaye de faire une boucle dans une table pour créer une chaîne csv. Je fais un tri à travers jquery sur la table afin que je puisse obtenir les données triées qui en résultent. Le problème est que je veux identifier chaque nouvelle ligne, donc ajoutez un \ n ou quelque chose après le dernier td de chaque ligne. Le code ci-dessous n'est pas juste. Des pointeurs appréciés.JQuery: Récupère le dernier td dans tr dans .each loop

function GetCsv() { 
     var strCSV = ''; 
     $('#MyTable tr').each(function() { 
      var lis = $(this).siblings; 
      for (var i = 0; i < lis.length; i++) { 
       strCSV += $(this).find("td").eq(i).html(); 
      } 
      strCSV += 'New line'; 
     }); 
    } 
+0

En faisant '$ ('# MyTable tr') chaque' vous Looping déjà en essence (function() via l'instruction .each Lorsque vous appelez '$ (this) .siblings', et itérez cette collection que vous êtes encore en train de faire défiler les éléments tr et non le contenu td Je pense que la réponse de Reigel ci-dessous fonctionnera pour vous –

+0

De plus, vous avez manqué les parenthèses dans l'appel de fonction 'siblings'. Quelqu'un, corrigez-moi si j'avais tort –

+0

oui Anton a raison ... était ma réponse travaillant pour vous Israfel ??? – Reigel

Répondre

3

essayer:..

function GetCsv() { 
     var strCSV = ''; 
     $('#MyTable tr').each(function() { 
      $(this).children().each(function(){ 
       strCSV += $(this).html(); 
      }) 
      strCSV += 'New line'; 
     }); 
    } 
+0

+1 Cela devrait fonctionner. Je voudrais déclarer la variable intermédiaire 'var tds = $ (this) .children();' de sorte que la solution soit aussi similaire à la publication originale que possible. –

Questions connexes