jquery tr 选择器不工作

jquery tr selector not working

    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 元素,但它似乎没有按预期工作。

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

有没有更好的方法来获取位置 2 处的 td 元素?

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

$row.find("td:nth-child(2)");工作

您使用 nth-child 选择器的方式有误。 tr:nth-child 不是 return tr 的子元素,而是 return 是 tr 元素,它们是各自父元素的第 n 个子元素。 您的选择器应该是什么

"tr td:nth-child(2)"

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

"td:nth-child(2)"

回到你的问题,你要求选择器选择 2nd td 而不是 2nth td.因此,上述选择器中 none 是正确的。这是你应该使用的:

"td:eq(2)"

参考 nth-child here

的规范

参考 eq here

的规范