示例1:
<ul>
<li id="o1" class="elem">foo1</li>
<li id="o2" class="elem">foo2</li>
<li id="o3" class="elem">foo3</li>
</ul>
**$('#o2').exactly_previous('.elem') ----> returns #o1**
示例2:
<ul>
<li id="o1" class="elem">foo1
<ul>
<li id="o11" class="elem"></li>
</ul>
</li>
<li id="o2" class="elem">foo2</li>
<li id="o3" class="elem">foo3</li>
</ul>
**$('#o2').exactly_previous('.elem') ----> returns #o11
$('#o11').exactly_previous('.elem') ----> returns #o1**
示例3:
<ul>
<li id="o1" class="elem">fooX</li>
</ul>
<ul>
<li id="o2" class="elem">fooX</li>
</ul>
**$('#o2').exactly_previous('.elem') ----> returns #o1**
示例4:
<a id="o1" class="elem">fooX</a>
<ul>
<li id="o2" class="elem">fooX</li>
</ul>
**$('#o2').exactly_previous('.elem') ----> returns #o1**
我希望你理解我的问题!感谢。
答案 0 :(得分:4)
这样的事情:
function exactly_previous($this, selector)
{
var $all = $(selector);
return $all.eq($all.index($this)-1);
}
试验:
将它转换为jQuery插件留给读者练习。
答案 1 :(得分:0)
为什么不看看jQuery .closest() API。可能有你需要的东西。
另外,请查看.find() API,这可能有助于遍历DOM对象。
答案 2 :(得分:0)