$(this).parents('table:first > tbody > tr')
$(this).parents('table:first').children('tbody').children('tr')
$(this).parents('table:first > tbody > tr')
$(this).parents('table:first').children('tbody').children('tr')
不同的是,第一选择是完全在parents
呼叫内,而第二个则不是。
因此,第一个查找匹配table:first > tbody > tr
的所有父母this
。 (换言之,含有tr
this
即在第一table
)
第二个将找到的this
相匹配table:first
母体,然后直接在tbody
s表示母体的发现所有的tr
S的。 (换句话说,所有的tr
小号直接父表中的)
似乎直观的反。我第一次读到第一个。我当然懒得去测试。 – ChaosPandion 2009-12-08 02:46:21
@ChaosPandion:仔细阅读。你会明白我的意思。 – SLaks 2009-12-08 02:47:47
+1 - 好的,我仔细看过,终于明白了。 – ChaosPandion 2009-12-08 02:54:27
也许一个例子可以帮助...开始了这个HTML
<table border=1>
<thead>
<th>Outter Table</th>
</thead>
<tbody>
<tr><td>1</td></tr>
<tr>
<td>
<table border=1 width=100>
<thead>
<th>Inner Table</th>
</thead>
<tbody>
<tr><td>2a</td></tr>
<tr><td class="test">2b</td></tr>
<tr><td>2c</td></tr>
</tbody>
</table>
</td>
</tr>
<tr><td>3</td></tr>
</tbody>
</table>
应用此脚本:
$('.test').parents('table:first > tbody > tr').addClass('foo');
$('.test').parents('table:first').children('tbody').children('tr').addClass('bar');
结果:
<table border="1">
<thead>
<th>Outter Table</th>
</thead>
<tbody>
<tr class="foo"><td>1</td></tr>
<tr class="foo">
<td>
<table width="100" border="1">
<thead>
<th>Inner Table</th>
</thead>
<tbody>
<tr class="bar"><td>2a</td></tr>
<tr class="bar"><td class="test">2b</td></tr>
<tr class="bar"><td>2c</td></tr>
</tbody>
</table>
</td>
</tr>
<tr class="foo"><td>3</td></tr>
</tbody>
</table>
这也不错! – user198729 2009-12-08 04:05:06
使用最接近而非父母&:第一个 – redsquare 2009-12-08 02:47:46
@redsquare:我们不知道他实际上想要选择什么。 – SLaks 2009-12-08 02:48:40
==父母('表:第一') – redsquare 2009-12-08 02:50:22