jquery tr选择器无法正常工作

时间:2016-08-12 04:06:52

标签: javascript jquery html jquery-selectors

    var row="<tr><td>"+segmentData.segmentName+"</td>" +
            "<td></td>"+
            "<td>"+segmentData.transTimelyTotal+"</td>"+
            "<td></td>"+
            "<td>"+segmentData.transUntimelyTotal+"</td>"+
            "<td></td>"+
            "<td>"+segmentData.transAmtTimelyTotal+"</td>"+
            "<td></td>"+
            "<td>"+segmentData.transAmtUntimelyTotal+"</td>"+
            "</tr>";
        var $row=$(row)

        var td = $("tr:nth-child(2)", $row);

我在javascript中描述了上面的html行,从那里我试图在第三个位置获得一个td元素,但它似乎没有按预期工作。

我收到一个未定义的对象,你可以看到下面的结果。

在第二个位置获取td元素的更好方法是什么?

[prevObject: m.fn.init[1], context: undefined, selector: "tr:even"]

2 个答案:

答案 0 :(得分:1)

您以错误的方式使用nth-child选择器。 tr:nth-child不会返回tr个孩子,而是返回他们各自父母的第n个孩子的tr个元素。 您的选择器应该是什么

"tr td:nth-child(2)"

但是,由于良好的HTML实践意味着tr元素只应包含td元素作为子元素,因此这个选择器就足够了:

"td:nth-child(2)"

回到你的问题,你问选择器第二 td而不是第二 td。因此,上述选择器都不对。以下是您应该使用的内容:

"td:eq(2)"

请参阅nth-child here

的规范

请参阅eq here

的规范

答案 1 :(得分:0)

$ row.find( “TD:第n个孩子(2)”);工作