¿Obtener una lista separada por comas de los valores de la primera celda para las filas con nombre de clase (usando Jquery)?
Pregunta
Intentando obtener identificadores de la siguiente tabla cuando se selecciona una fila.Por ejemplo, jquery debería devolver:"12,14"... ¿Mi código a continuación devuelve una cadena vacía?
Mi 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>
Mi consulta:
var nameIDs = $('table tr.selected td:first').map(function () {
return this.value;
}).get().join(',');
Solución
El value
no está definido para td, es necesario utilizar this.innerText
o this.innerHTML
, Utilice también first-child
en lugar de first
var nameIDs = $('table tr.selected td:first-child').map(function () {
return this.innerText;
}).get().join(',');
Editar
El html tampoco es válido, te perdiste el cierre </td>
en segundo td
para todas las filas.
Cambiar
<td>Smith<td>
A
<td>Smith</td>
Otros consejos
Este código puede ayudarlo
var elems = $(".selected>td:first-child");
for(var key in elems )
elems[key] = $(elems[key]).html();
var values = elems.join(",");
El resultado está en la cadena values
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow