Есть ли способ в jQuery, для данного элемента и селектора, выбрать последнее совпадение этого селектора перед этим элементом в порядке обхода дерева DOM?
Например, с учетом дерева DOM:
<html>
<body>
<div class="a" id="div0" />
<div>
<div class="a" id="div1"/>
</div>
<div class="b" id="div2"/>
<div id="element"/>
<div class="a" id="div3"/>
<div class="b" id="div4"/>
</body>
</html>
Используя селектор .a
и элемент #element
, вы получите #div1
, а используя селектор .b
и элемент #element
, вы получите #div2
.
Вариант использования - написание скрипта GreaseMonkey для работы в разных версиях Firefox с немного искаженным HTML. У меня есть элемент, который я могу найти последовательно во всех версиях, но другой элемент, который я хочу найти, это либо предыдущий родной элемент предка элемента, либо потомок предыдущего родственного элемента предка элемента (в зависимости от версии ).
Все, на что я действительно могу положиться, это то, что это последнее совпадение селектора, которое происходит перед тем элементом, который у меня есть при выполнении обхода по порядку дерева DOM.