使用jQuery返回表列中的所有元素

时间:2011-11-29 05:15:53

标签: javascript jquery html

我有一个HTML表,其中每行代表一个公司,每列代表一年。

返回一行中所有单元格的集合将很容易。我可以给行一个ID或类,并查找该行中的所有<td>元素。但是,我如何获得与特定年份(列)相对应的所有元素?

我在想我可以使用公司和年份值(例如item_1234_2011)来构建元素ID。这将使得在给定元素ID的情况下确定与公司和年份ID相对应的元素成为可能。但是,我如何找到与给定年份相关的所有元素?

4 个答案:

答案 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)')

jsFiddle Example

答案 3 :(得分:2)

如果你使用你指定的格式,我会想到这样的事情$('td[id$=_2011]');