我需要对DOM进行更改。我需要使用paragaraphs呈现表格内容。 为此我需要获取每行表的数据。我怎么能这样做?
<table style="width:300px">
<tr>
<th>Name</th>
<th>Surname</th>
<th>Age</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
输出应该是这样的 - 名字 - 吉尔,姓氏 - 史密斯,50岁和名字 - 夏娃姓氏 - 杰克逊时代 - 94
我写过类似的东西,
$("table tr").each(function () {
text = "";
$(this).find('th').each(function () {
//save the column headings to variables
});
$(this).find('td').each(function () {
text += $(this).text() + " ";
});
alert(text);
});
它将逐行打印。但需要在每个方面增加前景。我想我必须使用数组或类似的东西来存储表标题并在每个中使用它。
答案 0 :(得分:2)
是的,只需在变量中存储对th
元素的引用,然后逐行迭代其他单元格。您还可以将标题文本存储在数组中:
var headings = $('th').map(function() { return $(this).text(); }).get();
$("table tr:has(td)").each(function () {
var text = "";
$(this).children('td').each(function (index) {
text += headings[index] + ":" + $(this).text() + " ";
});
alert(text);
});