2010-12-02 71 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