jquery nextill Traversal
-
30-09-2019 - |
Вопрос
<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>
Точка в том, что я не хочу знать, сколько родителей мне нужно подняться, прежде чем начать идти по всему. Я просто хочу пройти дому в «следующем» направлении «, пока я не ударю на следующий узел, который я ищу.
Кто-нибудь знает, как это решить? просьба.
Дополнительная информация. В этом следующем примере я бы хотел, чтобы это удалить что-то1. Поэтому я не могу сказать родителям («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>
Решение
Если вы хотите посмотреть на «ближайший» следующий, это было бы что-то подобное, используя .parents()
идти все Родители, а не только первым уровнем:
$('.deleteNextSomething').click(function() {
$(this).parents('div').next('.something:first').remove();
});
Вы можете проверить это здесь. Отказ Так как они в обратном порядке после .next()
Позвоните, вы хотите :first
один он находит, что было бы самым местным для this
Вы начали с.