4

就像.closest()它允许从元素本身向上遍历其祖先一样,我正在寻找一种从元素本身向下遍历其后代的方法(与.find()仅遍历后代的方法不同,不包括元素本身)。我查看了遍历方法列表,但找不到我要找的东西。

jQuery中是否有一种类似于.closest()但用于向下遍历的方法?

4

2 回答 2

7

只需使用addBack(selector)方法:

$(this).find('.myclass').addBack('.myclass').first();

addBack('.myclass')只有匹配选择器时才会添加元素本身

于 2013-07-08T20:46:09.600 回答
4

这是一个可以找到最接近的插件(包括它自己):

$.fn.findClosest = function(selector) {
    return this.is(selector) ? this.filter(selector).first() : this.find(selector).first();
};

你这样称呼它:

$('#level-2').findClosest('.foo');

小提琴:http: //jsfiddle.net/W3WCQ/12/

于 2013-07-08T21:22:04.103 回答