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"]
答案 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)”);工作