我有一组jQuery元素,如下所示:
Object[
div.event_marker,
div.event_marker,
div.event_marker.selected,
div.event_marker,
div.event_marker
]
我需要在.selected
之前和/或之后直接获取元素。
我知道我可以使用$elements.eq(n+1)
或...(n-1)
执行此操作,其中n等于jQuery对象中.selected
的索引。
我如何获得n?
这是小提琴:https://jsfiddle.net/nzvj9t0x/
谢谢!
答案 0 :(得分:3)
jQuery有一个函数来获取元素的索引。该功能是.index()
。
将DOM元素传递给该函数将在当前堆栈中搜索它。因此,如果您.filter()
选定的元素,则可以使用n
:
var $all_markers = $('#markers .event_marker');
var n = $all_markers.index($all_markers.filter('.selected'));
答案 1 :(得分:0)
不要看你的内容,看看DOM。
您可以使用
$myJquerySet.find('.selected').prev()
或
$myJquerySet.find('.selected').next()
答案 2 :(得分:0)
您可以做的是使用选择器匹配元素,然后使用.index()函数检索列表中的位置。
你可以这样做:
var index = $myJquerySet.find('.selected').index();
$elements.eq(index + 1);
那应该在.selected