Получить разделенный запятыми список значений первых ячеек для строк с именем класса (с использованием Jquery)?
Вопрос
Попытка получить идентификаторы из таблицы ниже при выборе строки.Например, jquery должен вернуть:«12,14»..Мой код ниже возвращает пустую строку?
Мой 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>
Мой JQuery:
var nameIDs = $('table tr.selected td:first').map(function () {
return this.value;
}).get().join(',');
Решение
А value
не определено для td, вам нужно использовать this.innerText
или this.innerHTML
, Также используйте first-child
вместо first
var nameIDs = $('table tr.selected td:first-child').map(function () {
return this.innerText;
}).get().join(',');
Редактировать
HTML также недействителен, вы пропустили закрытие </td>
во второй td
для всех строк.
Изменять
<td>Smith<td>
К
<td>Smith</td>
Другие советы
Этот код может помочь вам
var elems = $(".selected>td:first-child");
for(var key in elems )
elems[key] = $(elems[key]).html();
var values = elems.join(",");
Результат находится в строке values
Не связан с StackOverflow