Obtenir une liste séparée par des virgules de la première cellule de valeurs pour les lignes avec classe (à l'aide de Jquery)?

StackOverflow https://stackoverflow.com//questions/25046666

  •  21-12-2019
  •  | 
  •  

Question

En essayant de récupérer les id de la table ci-dessous, lorsqu'une ligne est sélectionnée.Par exemple, le jquery doit retourner:"12,14"..Mon code ci-dessous renvoie une chaîne vide?

Mon code html:

<table id="display" width="100%">
  <thead>
      <tr>
           <th>ID</th>
           <th>first</th>
           <th>last</th>
           <th>number</th>
       </tr>
   </thead>
<tbody>
...etc...
   <tr class="selected">
      <td>12</td>
      <td>Bob</td>
      <td>Smith</td>
      <td>9999</td>
   </tr>
   <tr>
      <td>13</td>
      <td>Lee</td>
      <td>Smith</td>
      <td>8888</td>
   </tr>
   <tr class="selected">
      <td>14</td>
      <td>JJ</td>
      <td>Wolf</td>
      <td>77777</td>
   </tr>
... etc..
</table>

Mon Jquery:

 var nameIDs = $('table tr.selected td:first').map(function () {
                return this.value;
            }).get().join(',');
Était-ce utile?

La solution

L' value n'est pas définie pour la td, vous devez utiliser this.innerText ou this.innerHTML, Utilisez aussi first-child au lieu de first

Démonstration En Direct

var nameIDs = $('table tr.selected td:first-child').map(function () {
    return this.innerText;
}).get().join(',');

Modifier

Le html n'est pas valide, vous avez raté la clôture </td> en deuxième td pour toutes les lignes.

Changement

<td>Smith<td>

Pour

<td>Smith</td>

Autres conseils

Ce code peut vous aider à

var elems = $(".selected>td:first-child");
for(var key in elems )
  elems[key] = $(elems[key]).html();
var values = elems.join(",");

Le résultat est dans la chaîne de values

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top