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

显然,我可以这样做:

$('.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,直到找到我正在寻找的下一个节点。

有谁知道如何解决这个问题?高兴。

附加信息。在下一个示例中,我希望它删除 Something1。所以我不能说 parents('div').next - 因为这会忽略下一个元素。

<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>
4

1 回答 1

2

如果您想接下来查看“最近的”,它会是这样的,.parents()用于访问所有父母,而不仅仅是第一级:

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

你可以在这里测试一下.next()由于通话后它们的顺序相反,因此您需要它找到的那个,这对于您开始时:first来说是最本地的。this

于 2010-12-02T01:34:16.563 回答