jQuery中的两个连续伪选择器不起作用

时间:2014-10-23 16:41:29

标签: jquery jquery-selectors css-selectors

我在使用jQuery选择元素时遇到了一些问题。

我的HTML代码归结为:

<body>
  <p>Dont mind me, sir</p>
  <p>Select me please!</p>
  <p class="fabulous">So fab</p>
</body>

使用一些jQuery:

$(document).ready(function(){
  $('p:not(.fabulous):last-child').css({'background':'yellow'});
});

使用选择器$('p:not(.fabulous):last-child')我试图选择其父级的最后一个元素(在本例中为body),它没有“fabulous”类。使用$('p:not(.fabulous)')我选择body的所有非神话般的孩子,但为什么我不能选择剩余的p元素的最后一个孩子?我非常感谢关于:last-child:not(的行为的回答,或者我误解的任何选择。

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试使用$('p:not(.fabulous):last').css({'background-color':'yellow'});$('p:not(.fabulous)').last().css({'background-color':'yellow'});

答案 1 :(得分:1)

:last-child选择最后一个孩子的所有元素。 <p>的最后一个(<body>)子项为<p class="fabulous">

因此,当您执行p:not(.fabulous):last-child时,您要求<p> 其父的最后一个孩子并且有班级fabulous。没有这样的元素。

在这种情况下,您需要使用$('p:not(.fabulous):last')