我很好奇为什么:
$("div.title").last();
不会返回与css代码相同的项目:
$("div.title:nth-child(0)")
或$("div.title:last-child")
我试图在css中引用它,但似乎它似乎没有这样做。
html看起来像:
<div>
<div class="title"></div>
<div></div>
<div class="title"></div>
<div></div>
</div>
答案 0 :(得分:6)
:last-child
只会选择元素,如果它是父元素的最后一个子元素,无论元素,类或任何其他选择器。
在jQuery中.last()
实际上会过滤你在jQuery选择器中获得的元素集合。
答案 1 :(得分:1)
:last-child
仅适用于父级的最后一个子级(类似于jQuery .last()
)
但是,CSS :last-of-type
选择最后一次出现的模式,这可能就是你想要做的事情:
div.title:last-of-type
将选择与jQuery $("div.title").last();
(注意:这两个选择器在IE8或更低版本中默认不起作用)
答案 2 :(得分:0)
原因是在CSS中,:last-child
指的是父项的最后一个子项。所以.. ..
<div>
<div class="title"></div>
<div></div>
<div class="title"></div>
<div></div>
</div>
div.title:last-child
不会选择任何内容,因为div.title
的父级的最后一个孩子是div
。
:nth-child(n)
使用相同的逻辑。此处n
指的是从1
开始计数的父项的每个子项的索引。
last()
是不同的。它选择已提供的最后一个jQuery选择器。因此,$("div.title").last();
将选择整个代码中的最后一个div.title
。