我有一张桌子
<table>
<tr>
<td class="myA">Data...1a</td>
<td class="myA">Data...2a</td>
<td class="myA">Data...3a</td>
</tr>
<tr>
<td class="myB">Data...1b</td>
<td class="myB">Data...2b</td>
<td class="myB">Data...3b</td>
</tr>
<tr>
<td class="myC">Data...1c</td>
<td class="myC">Data...2c</td>
<td class="myC">Data...3c</td>
</tr>
</table>
我们经常这样做:数据不是在一行和它们的列中分开 通常情况下,数据位于不同的行中但位于相同的td位置(因为连接的数据应该在它们之间写入)。
所以我想如果我有索引就可以在每个tr行上获得一个类过滤器和.get(theIndex)
来从td个体中提取数据
但有一种简单的方法吗? - &GT;我想一步提取属于一起的数据 - &gt;然后可能是在一个数组/ jquery集中?
有什么想法吗? (我不能添加ids等 - 我只有td和classNames的索引)。
答案 0 :(得分:1)
这可能是您正在寻找的:
<html>
<head>
</head>
<body>
<table>
<tr>
<td class="A">First Name 1</td>
<td class="A">First Name 2</td>
<td class="A">First Name 3</td>
</tr>
<tr>
<td class="A">Last Name 1</td>
<td class="B">Last Name 2</td>
<td class="B">Last Name 3</td>
</tr>
</table>
<script src="jquery-1.3.2.min.js"></script>
<script>
$(function() {
var idx = 2;
var data = [];
$("tr td:nth-child(" + idx +")")
.each(function() {
data[data.length] = $(this).text();
});
var person = {
firstName : data[0],
lastName : data[1] };
alert (person.firstName + " " + person.lastName);
});
</script>
</body>
</html>
上面的示例将为您提供多行中的名字2和姓氏2(td index = 2)
答案 1 :(得分:0)
要理解你想要实现的目标真的很难。如果您知道要访问的特定行,则可以始终执行此操作,
var rowIndex = 1;
$('table tr:eq(' + rowIndex + ') td').each( function() { /* cell for the row identified by rowIndex. */});
您还可以访问具有相同类名的所有tds。
$('td.myB').each( function() { } ); //Access all the cells having class 'myB'.
答案 2 :(得分:0)
我不确定这是否是你要找的,但是这个函数,给定一个特定的表元素引用和从零开始的索引,将返回该特定列中的单元格数组。如果这是有道理的,请告诉我。
function get_table_column(table, index) {
cells = []
$('tr', table).each(function() {
cells.push ($('td:eq(' + index + ')', this));
});
return cells;
}