jQuery find(..)遍历方法不包括当前节点-它从当前节点的子节点开始。在匹配算法中包含当前节点的find操作的最佳调用方式是什么?翻阅文档,没有什么能立即引起我的注意。
发布于 2013-07-09 08:46:01
对于jQuery 1.8和更高版本,您可以使用.addBack()
。它需要一个选择器,所以你不需要过滤结果:
object.find('selector').addBack('selector')
在jQuery 1.8之前,您必须使用.andSelf()
(现在已弃用并删除),然后需要过滤:
object.find('selector').andSelf().filter('selector')
发布于 2010-05-13 23:32:22
您不能直接执行此操作,我能想到的最接近的方法是使用.andSelf()
并调用.filter()
,如下所示:
$(selector).find(oSelector).andSelf().filter(oSelector)
//or...
$(selector).find('*').andSelf().filter(oSelector);
不幸的是,.andSelf()
没有带选择器,这会很方便。
发布于 2015-07-23 19:27:05
定义
$.fn.findSelf = function(selector) {
var result = this.find(selector);
this.each(function() {
if ($(this).is(selector)) {
result.add($(this));
}
});
return result;
};
然后使用
$.findSelf(selector);
而不是
$find(selector);
遗憾的是,jQuery没有内置此功能。经过这么多年的发展真的很奇怪。由于.find()的工作方式,我的AJAX处理程序没有应用于某些顶级元素。
https://stackoverflow.com/questions/2828019
复制相似问题