jQuery nextALL recorrido
-
30-09-2019 - |
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>
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ó.