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。