2010-12-02 113 views
0
<div><a href="" class="deleteNextSomething">Delete Something!</a></div> 
<div class="something">This is Something</div> 

很顯然,我可以這樣做:jQuery的nextALL穿越

$('.deleteNextSomething').click(function() { 
$(this).parent('div').next('.something').remove(); 
}); 

但是,如果我的HTML實際上就是更多這樣的:

<div><div><div><a href="" class="deleteNextSomething">Delete Something!</a></div></div></div> 
<div class="something">This is Something</div> 

的一點是,我不知道想要知道在我開始去ACROSS之前需要多少父母。我只是想遍歷DOM中的「下一個」方向」,直到我打我正在尋找下一個節點。

有誰知道如何解決這個問題?pleasssse。

附加信息。在接下來例如,我希望它刪除Something1所以我不能說父母(「DIV」)下一個 - 。因爲這會忽略第二天元素

<div> 
    <a href="" class="deleteNextSomething">Delete Something!</a> 
    <div class="something">This is Something 1</div> 
</div> 
<div class="something">This is Something 2</div> 
+0

和next只能看着SIBLINGS。我想看看「堂兄弟」和「遙遠的非親戚,那只是在下一個地方的下一個」 – captainclam 2010-12-02 01:30:37

回答

2

如果你想看看「最近的。 「接下來,它會是這樣的,使用.parents()所有父母,而不是隻是第一級:

$('.deleteNextSomething').click(function() { 
    $(this).parents('div').next('.something:first').remove(); 
}); 

You can test it out here。由於它們在.next()呼叫之後的順序相反,因此您希望找到它的:first,這對於您開始的this來說是最本地的。

+0

更新的原始問題,以澄清問題。儘管謝謝! – captainclam 2010-12-02 01:38:57