我有一个HTML表,其中每行代表一个公司,每列代表一年。
返回一行中所有单元格的集合将很容易。我可以给行一个ID或类,并查找该行中的所有<td>
元素。但是,我如何获得与特定年份(列)相对应的所有元素?
我在想我可以使用公司和年份值(例如item_1234_2011)来构建元素ID。这将使得在给定元素ID的情况下确定与公司和年份ID相对应的元素成为可能。但是,我如何找到与给定年份相关的所有元素?
答案 0 :(得分:2)
第一列看起来像:
$('tr > td:first-child', yourTable);
虽然与一年相关联应该如下:
var getCellsByYear = function (year, column) {
column = column || 0; // Could set a reasonable default.
return $('tr > td:nth-child("' + column + '"):content("' + year + '")');
};
修改切换到nth-child
,因为这似乎更合适。
答案 1 :(得分:2)
这个简单的例子应该让你前进。假设您有以下标记,并且您想要表格单元格的中间列。
<强>标记强>
<table id="stuff">
<tr>
<td>a</td>
<td>d</td>
<td>g</td>
</tr>
<tr>
<td>b</td>
<td>e</td>
<td>h</td>
</tr>
<tr>
<td>c</td>
<td>f</td>
<td>i</td>
</tr>
</table>
您可以使用以下jQuery选择单元格(d,e,f):
$('td:eq(1)', $('#stuff tr')).each(function()
{
console.log($(this).html());
});
这里的工作示例:http://jsfiddle.net/3UgdA/
答案 2 :(得分:2)
:nth-child()
伪选择器可能很方便。如果要选择第二列,可以使用$('table tr>td:nth-child(2)')
答案 3 :(得分:2)
如果你使用你指定的格式,我会想到这样的事情$('td[id$=_2011]');
。