我想从任何单元格中选择第一行,所以我只是写了javascript。jquery:第一个选择器给第二个元素,而不是第一个
var curcontrol = $("#cellno_111");
var firsttd= $(curcontrol).parents("table tbody tr:first");
alert($(firsttd).text());
而我的表是低于
<table id="idTable_1" border="1px" width="97%" class="tblDragTable" data-numberofrows="2" data-numberofcolumns="2">
<tbody>
<tr id="trno_10">
<td class="tblCell" id="cellno_100">0</td>
<td class="tblCell" id="cellno_101">0</td>
</tr>
<tr id="trno_11" height="1">
<td class="tblCell" id="cellno_110" width="1">1</td>
<td class="tblCell selectedCell" id="cellno_111" width="1">1</td>
</tr>
</tbody>
</table>
当我使用find()
它给了我正确的结果
var curcontrol = $("#cellno_111");
var firsttd= $(curcontrol).parents("table tbody").find("tr:first");
但我只是想知道为什么上面的代码返回第二tr
而不是第一个tr
这里是我的JSBIN http://jsbin.com/lisozuvade/1/watch?html,js,output
完美。这只是返回父母tr ... – 2015-02-06 09:11:06
伟大的***调用父母与表tbody tr的过滤器将只匹配直接父母TR ***,但仍然困惑..为什么'table tbody tr'匹配第一个元素,当我使用'父母()'是'J-query'行为? – 2015-02-06 10:22:09
@Anant Dabhi:在'父母'中,任何选择器纯粹是一个过滤器,应用于父,祖父母,祖父母等的集合。匹配整个选择器的唯一元素是* immediate *父'TR',而不是表中的第一个“TR”。如果你需要更多的解释,请问。 – 2015-02-06 10:24:59