2010-07-09 30 views
4

的HTML看起來像在此之前:jQuery的 - 找到第1個要素與從上面特定的類,而不是另一個元素

<li class="divider"> 
    <div> 
    ...(maybe more divs)...  
     <div class="content"> 
     ...(maybe more divs)... 
     <a href="#" class="link">LINK</a> 

... 

我該怎麼選擇。內容DIV,從迷上了一個jQuery函數內鏈接? 請注意,我有這樣的多個列表,並在其中一些div.content可能會丟失,所以我只想選擇這個div,如果它存在於當前塊(li.divider)。

我試着用$link.parent().parent().find('content')但在某些情況下失敗,因爲這兩個元素之間的元素可以改變的數...

+0

爲什麼會不是一個單一的'li.divider div.content'工作? – 2010-07-09 19:58:25

+0

,因爲頁面上有多個li.divider東西 – Alex 2010-07-09 20:12:14

回答

5

如果他們不是嵌套的,你應該能夠做到這一點:

$('a.link').click(function() { 
    $(this).closest('div.content'); 
}); 

$('a.link').click(function() { 
    $(this).parents('div.content:first'); 
}); 

如果它們嵌套,那麼你可能需要做這樣的事情:

$('a.link').click(function() { 
    $(this).closest('li.divider').find('div.content'); 
}); 

...因此,如果嵌套正在進行,並且當前沒有div.content,那麼最終不會選擇更遠的div.content祖先。

+0

謝謝,最後一個作品:D – Alex 2010-07-09 20:11:41

0

$link.parent(".content")

0

使用closest選擇...

var parentContent = $(this).closest("div.content"); 

if(parentContent.length > 0) { 
    alert("DIV was found!"); 
} 
相關問題