,如果我有这样的HTML结构 ?我怎样才能-2项目:<p>C</p>
得-2类似于jQuery对象:最后一个孩子
<div class='m'>
<span><p>A</p></span>
<span><p>B</p></span>
<span><p>C</p></span>
<span><p>D</p></span>
<div>
将这项工作?
div.m > span:nth-last-child(2) > p
>> <span><p>C</p></span>
,如果我有这样的HTML结构 ?我怎样才能-2项目:<p>C</p>
得-2类似于jQuery对象:最后一个孩子
<div class='m'>
<span><p>A</p></span>
<span><p>B</p></span>
<span><p>C</p></span>
<span><p>D</p></span>
<div>
将这项工作?
div.m > span:nth-last-child(2) > p
>> <span><p>C</p></span>
如果您解决您的HTML(您的交易<div>
实际上是一个开始标签),nth-last-child应该很好地工作:
alert($("div.m > span:nth-last-child(2) > p").text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='m'>
<span><p>A</p></span>
<span><p>B</p></span>
<span><p>C</p></span>
<span><p>D</p></span>
</div>
我想CSS不提供反向导航,所以,没有以前的CSS选择器,可以使用jQuery previous()
来获取-2位置的元素。
$(".m span:last").previous().find('p').css('background-color', 'red');
,或者你可以简单地用jQuery eq(-2)
做这样的:
$(".m span").eq(-2).find('p').css('background-color', 'red');
它为所有的情况下工作,最后一个孩子
<div class='m'>
<span><p>A</p></span>
<span><p>B</p></span>
<span><p>C</p></span>
<span><p>D</p></span>
<div>
<div class='m'>
<span><p>A</p></span>
<span><p>B</p></span>
<span><p>X</p></span>
<span><p>P</p></span>
<span><p>C</p></span>
<span><p>D</p></span>
<div>
如果什么之前得到的元素:警报( $(“。numbers span”)。eq(-2).text()); ?? –
-2将采取-2元素 –