Как получить значение строки, извлеченной с помощью jQuery
У меня есть таблица, и я извлекаю каждую строку таблицы, выполняя это:
$(function(){
$('table tr').click(function(){
var $row = $(this).html();
alert($row);
});
});
Это возвращает меня к следующей строке:
<td>2</td>
<td>Malcriado</td>
<td>Bota</td>
<td>Tipo2</td>
<td>NuevaDesc</td>
<td>NuevaDesc</td>
<td></td>
<td>Cerdo</td>
<td>Azul</td>
<td>oso</td>
<td>Rojo</td>
<td>12</td>
<td>metal</td>
<td>sss</td>
<td></td>
<td>Delicias</td>
Следующее, что я пытаюсь сделать, - это удалить td, получить промежуточные значения и поместить их в массив, но я не смог этого сделать. Есть идеи?
3 ответа
Решение
Использовать children()
(документы) метод, чтобы получить <td>
элементы, то map()
(документы) метод для создания объекта, содержащего значения, и, наконец, toArray()
(документы) метод, чтобы преобразовать его в массив.
$('table tr').click(function(){
var values = $(this).children('td').map(function() {
return this.innerHTML;
}).toArray();
alert(values);
});
$(function() {
$('table tr').click(function() {
var arr = [];
$('td', this).each(function(i, item) {
if (item.innerHTML)
arr.push(item.innerHTML);
});
alert(arr.join(','));
});
});
Jast ради добавил проверки для пустых<TD>
Переберите элементы в строке и получите их текст:
var contentArray = [];
$("td", $row).each(function(){
contentArray.push($(this).text());
});