在給定元素和選擇器的情況下,jQuery中有沒有一種方法從DOM樹的按順序遍歷中選擇該元素之前的那個元素的最後一個匹配?jQuery:在指定元素之前選擇最後一個匹配
例如,給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樹的按順序遍歷時。
我找到真正的HTML更容易閱讀這樣的僞代碼。 – gdoron 2012-03-05 18:46:15
我以前寫過一個'realPrev'插件。請參閱:[jQuery .prev()類型,無論它的父母等](http://stackoverflow.com/a/7771241/938089?jquery-prev-of-a-type-regardless-of-its-parent-等等)。在你的情況下,你可以使用:$('#element')。realPrev('。a,#element');' – 2012-03-05 18:46:46
-1因爲格式不正確的NOT HTML使得很難確定封閉/在你的例子中的divs。 – 2012-03-05 18:56:57