jQuery:如何在所有行中获得第一个“td”

时间:2010-04-21 07:05:03

标签: jquery

我有一张桌子,我希望在所有行中获得第一个“td”。

我的jquery在这里:

$("table.SimpleTable tr td:first-child").css('background-color','red');

和我的HTML:

<table class='SimpleTable' border="1" ID="Table1">
        <tr>
            <td>Left</td>
            <td>Right</td>
        </tr>
        <tr>
            <td>Left</td>
            <td>Right</td>
        </tr>
        <tr>
            <td>Left</td>
            <td>Right</td>
        </tr>
        <tr>
            <td>Left</td>
            <td>
                <table border="1" ID="Table2">
                    <tr>
                        <td>AAA</td>
                        <td>AAA</td>
                        <td>AAA</td>
                    </tr>
                </table>
            </td>
        </tr>
        <tr>
            <td>Left</td>
            <td>
                <table border="1" ID="Table3">
                    <tr>
                        <td>BBB</td>
                        <td>BBB</td>
                        <td>BBB</td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>

这里的问题是它在第二个“td”的嵌套表中得到第一个“td”。

请帮助我!

3 个答案:

答案 0 :(得分:1)

尝试:

$("table.SimpleTable > tbody > tr > td:first-child").css(..);

>仅搜索儿童而非所有后代。我们需要tbody,因为浏览器会将其插入表格中。

example here

答案 1 :(得分:0)

普通的CSS选择器可以工作,你几乎可以看到。嵌套td中的第一个table将是

$('table table tr td:first-child');

将选择仅限于第二个表格为:

$('table table tr td:first-child').filter(':nth(1)');

Live example at jsfiddle

答案 2 :(得分:0)

你需要选择直接/直接的孩子,试试这个:

$("table.SimpleTable > tr td:first-child").css('background-color','red');

>允许您仅定位直接元素