2015-05-27 24 views
0

,如果我有這樣的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> 

回答

1

您可以使用.eq(index)選擇

$(".m span").eq(2).text() 

Fiddle

+1

如果什麼之前得到的元素:警報( $(「。numbers span」)。eq(-2).text()); ?? –

+1

-2將採取-2元素 –

1

如果您解決您的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>

0

我想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>