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)?
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(',');
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
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