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 を開始する前に、UP する必要がある親の数を知りたくないということです。探している次のノードに到達するまで、「次の」方向に DOM をトラバースしたいだけです。

これを解決する方法を知っている人はいますか?お願いします。

追加情報。次の例では、Something1 を削除します。したがって、parent('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 に答える