2009-08-30 158 views
0

我遇到了一個看似不正確的問題。我在DOM中的同一級別上有一對錨標籤。結構下:jQuery遍歷問題

div.mcoup 
    div.lcoup 
    div.rcoup 
     div.rcoupmeta 
      a.rcoupedit 
      a.rcoupdelete 
    div.updcoup 
    div.delcoup 

,這裏是劇本我使用:

$('div.delcoup').hide(); 
    $('a.rcoupdel').click(function() { 
     $(this).parent().parent().next('div.delcoup').slideToggle(400); 
     $('div.updcoup').slideUp(400); 
     $('div.crecoup').slideUp(400); 
     return false; 
    }); 

    $('div.updcoup').hide(); 
    $('a.rcoupedit').click(function() { 
     $(this).parent().parent().next('div.updcoup').slideToggle(400); 
     $('div.delcoup').slideUp(400); 
     $('div.crecoup').slideUp(400); 
     return false; 
    }); 

這裏奇怪的是a.rcoupedit正確的目標,並影響div.updcoup同時,用相同的代碼, a.rcoupdelete似乎沒有對div.delcoup做任何事情。它確實滑動了其他元素。我的想法是,從a.rcoupdelete我們必須提高兩個層次,然後找到與delcoup類的下一個div。顯然有什麼不對。

如何正確定位div.delcoup?

回答

3

.next()具體選擇DOM中的下一個項目(在同一級別)。 .updcoup版本正常工作,因爲的確,在找到錨的父親的父代(即div.rcoup)後,.next()元素爲div.updcoup

翻閱所有選定一個後過來的元素,使用.nextAll()

$(this).parent().parent().nextAll('div.delcoup').slideToggle(400); 
+0

它總是簡單的事情,獲得​​亞...謝謝! – 2009-08-30 01:56:16