Pregunta

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

Obviamente, yo podría hacer esto:

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

Pero, ¿y si mi HTML es en realidad más como esto:

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

El punto es, no quiero saber cuántos padres que necesito para subir antes de empezar a ir al otro lado. Sólo quiero recorrer el DOM en una dirección "siguiente"" hasta que llegué a la siguiente nodo que estoy buscando.

¿Alguien sabe cómo resolver esto? pleasssse.

Otros detalles. En el siguiente ejemplo, me gustaría que para borrar Something1. Así que no puedo decir los padres ( 'div') al lado -.. Porque esto sería ignorar el siguiente elemento

<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>
¿Fue útil?

Solución

Si desea ver el "más cercano" al lado, sería algo como esto, usando .parents() para ir a todos los padres, en lugar de sólo el primer nivel:

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

Puede probarlo aquí . Ya que están en orden inverso después de la href="http://api.jquery.com/next/" rel="nofollow"> .next() llamada :first que encuentre, lo que sería lo más local a la this la que empezó.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top