jQuery选择器问题?
我有两张桌子jQuery选择器问题?,jquery,Jquery,我有两张桌子 <table border="1" class="a"> <tr> <td>Value 1</td> <td>2</td> </tr> <tr> <td>Value 2</td>
<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>
结果是:
注意那个没有褪色的绿色
但这没有意义。我写了“去找父母——这是TR,然后把它全部淡出”
好的,也许答案是因为它里面没有值,而其他3个td的
有值
所以我测试了(在第二张表上):
它确实使所有TR褪色(尽管最后一个单元格是空的)
这是怎么回事
jsbin:问题在于第一个示例。根据API(),
:parent
选择其中包含内容的。所以第一个选择器说“获取所有包含内容的
s”,所以它只选择前三个
s。要选择
的所有父级,请使用以下命令:
$('.a td').parent()
希望这能帮你解决问题 问题在于第一个示例。根据API(),
:parent
选择其中包含内容的。所以第一个选择器说“获取所有包含内容的
s”,所以它只选择前三个
s。要选择
的所有父级,请使用以下命令:
$('.a td').parent()
希望这能帮你解决问题 选择器将查看带有子节点的td(在本例中,您的三个td都有一个textNode作为子节点,而不是最后一个。您不需要在dom树上使用:
$(".a td").parent().fadeTo(1500, 0.3);
或者,如果要使用:父项:
$(".a tr:parent").fadeTo(1500, 0.3);
我认为您需要等到CSS4附带其父选择器时,选择器将查看带有子项的td(在本例中,您的三个td都有一个作为子项的textNode,而不是最后一个。您不需要使用dom树:
$(".a td").parent().fadeTo(1500, 0.3);
或者,如果要使用:父项:
$(".a tr:parent").fadeTo(1500, 0.3);
我认为您需要等到CSS4附带其父选择器时才能使用。如果您正在构建更复杂的选择器,则可以使用
:has()
选择器:
如果要构建更复杂的选择器,则可以使用
:has()
选择器:
:parent
执行其他操作:“选择另一个元素的父元素,包括文本节点。”“这是:empty的倒数。”:parent
执行其他操作:“选择另一个元素的父元素,包括文本节点。”“这是:empty的倒数。”我认为您应该使用parent()
,因为您只想选择直接父级
s。我认为您应该使用parent()
,因为您只想选择直接父级
s。