我有 2 张 table 。
<table border="1" class="a">
<tr>
<td>Value 1</td>
<td>2</td>
</tr>
<tr>
<td>Value 2</td>
<td></td>
</tr>
</table>
<table border="1" class="b">
<tr>
<td>Value 1</td>
<td>2</td>
</tr>
<tr>
<td>Value 2</td>
<td></td>
</tr>
</table>
在表 #1 上我写:
$(".a td:parent").fadeTo(1500, 0.3);
结果是:
注意绿色没有淡出。
但这没有意义。我写了“转到父级 - 即TR并将其全部淡出”
好吧,也许答案是因为它内部没有值,而其他 3 个 td
有。
所以我测试了(在第二表上):
$(".b tr").fadeTo(1500, 0.3);
它确实使所有 TR 褪色(尽管最后一个单元格为空)....
这是怎么回事?
最佳答案
问题出在第一个例子上。根据API(http://api.jquery.com/parent-selector/),:parent
选择其中包含内容的内容。所以第一个选择器说“获取所有包含内容的 <td>
”,因此它只选择前三个 <td>
。 s。选择 <td>
的所有父项s,使用这个:
$('.a td').parent()
希望这能为您解决问题!
关于jQuery 选择器问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11921409/