2012-04-12 89 views
1

我用jQuery想要找到元素的前置兄弟,所以對於一個例子,jQuery的發現前面的兄弟

<li> 
    <a href=""> 
     <img src="http://placehold.it/45x45" alt="Profile Image"/> 
     <hgroup> 
      <h5>Person Number 1</h5> 
      <h6>Recruitment Consultant</h6> 
     </hgroup> 
    </a> 
</li> 
<li> 
    <a href=""> 
     <img src="http://placehold.it/45x45" alt="Profile Image"/> 
     <hgroup> 
      <h5>Person Number 2</h5> 
      <h6>Recruitment Consultant</h6> 
     </hgroup> 
    </a> 
</li> 
<li> 
    <a href=""> 
     <img src="http://placehold.it/45x45" alt="Profile Image"/> 
     <hgroup> 
      <h5>Person Number 3</h5> 
      <h6>Recruitment Consultant</h6> 
     </hgroup> 
    </a> 
</li> 

如果我是徘徊在第二列表元素a的我怎麼會找到以前lia

我嘗試低於,

$('resultsset a').hover(function(){ 
    $(this).prev().find('li a').css('bottom-bottom', '1px solid #000'); 
}, 
function() { 
    $(this).prev().find('li a').css('bottom-border', '1px solid #c0c0c0'); 
}); 
+0

嘗試'$(本).parent()。prev()。找到( 'A')。CSS(...)' – 2012-04-12 14:46:33

+1

我想'底部bottom'和'自下而上border'應該是'border-bottom' – 2012-04-12 14:49:05

回答

3

你很近。你想找到元素的父親的前一個兄弟,然後在其中找到a

$(this).parent().prev().find('a') 
0
$(this).parent().prev('li').children('a').first(); 

.prev('li')確保兄弟確實是一個<li>。使用.children('a')確保只考慮直接後代。

+0

我相信'ul li'列表中的'prev()'將會是'li',否則它是無效的html。 – 2012-04-12 14:49:15

+0

@Vega公平點,但在檢查中沒有傷害,以防萬一提供的HTML無效:) – Alnitak 2012-04-12 14:50:33

0
$('resultsset a').hover(function(){ 
    $(this).parent().prev().find('a').css('bottom-bottom', '1px solid #000'); 
}, 
+0

'.prev()'將是李 - >他想突出顯示'a' – 2012-04-12 14:48:21

+0

Yah注意到後......固定。 – 2012-04-12 14:48:54