Jquery在dom中找到具有相同类的prev元素

abh*_*jit 2 jquery dom-traversal

关于优秀jQuery的另一个问题

当我点击具有相同类的元素时,我想找到一个带有类的dom元素,例如abc.现在搜索应该是前一个元素.

我编写的代码:

$(this)
    .closest('.abc')
    .parent()
    .prevAll()
    .find('.abc')
    .first()
    .triggerHandler("focus");
Run Code Online (Sandbox Code Playgroud)

这是回顾父母的前一个dom并搜索abc,但是如果类'abc'在前一个dom中不存在,我想搜索直到找到abc,同时尝试使用jquery的prevuntil仍然没有运气.

如果有人可以帮助我,非常感谢.

kap*_*apa 5

您可以使用它来获取前一个元素:

var $current = $(this); //the element you have
var $elems = $('.abc'); //the collection of elements

var $previous = $elems.eq($elems.index($current) - 1); //the one you needed
Run Code Online (Sandbox Code Playgroud)

我不会说这是最有效的代码,但是如果不知道DOM树,那就是我能想到的最好的代码.如果您只$('.abc')在DOM可能已更改并且仅使用缓存版本($elems)时重新运行它应该没问题.