В jquery я пытаюсь найти способ поиска в dom до тех пор, пока не найдет селектор. Например.Поиск по DOM из заданного элемента с использованием jquery
Предоставлена эта структура:
<span data-type="contact" data-filter="4" id="buyer-lookup" class="uneditable-input contact-lookup" data-original-title="" title="">Jeff</span>
<div class="popover">
<div class="arrow"></div>
<h3 class="popover-title"><strong>Jeff</strong></h3>
<div class="popover-content">
<address style="margin:0;"> MO<br></address>
<a data-id="70" data-type="contact" class="pull-right edit-contact" href="#">Edit</a>
<div class="clear"></div>
</div>
</div>
На щелчке «.edit контакта» Я хотел бы искать, пока я не найду „span.contact-поиска“. Я могу использовать родитель пару раз, чтобы получить то, что хочу, как показано ниже, но есть ли более чистый способ, чтобы вы могли просто указать $ (this) .searchUpFunction ('span.contact-lookup'); поэтому он начнет с этого и начнет поиск до тех пор, пока не найдет span.contact-lookup? .prev, похоже, не ищет родителей.
$('.edit-contact').click(function(){
var filter = $(this).parent().parent().prev('span.contact-lookup').data('filter');
alert(filter);
});
Более быстрый способ, если ваш фрагмент DOM будет '$ (this) .closest ('div.popover'). Prev()' –
Для поиска вверх у вас есть ['.closest()'] (http://api.jquery.com/closest/), но в вашем случае, поскольку вы ищете предыдущий узел предка, в jQuery нет прямой функции ... Тем не менее, вы можете попробовать : '$ (this) .closest (". popover "). prev()'. –