首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >查找jQuery find(..)方法,它包含当前节点。

查找jQuery find(..)方法,它包含当前节点。
EN

Stack Overflow用户
提问于 2010-05-13 23:29:31
回答 10查看 32.3K关注 0票数 148

jQuery find(..)遍历方法不包括当前节点-它从当前节点的子节点开始。在匹配算法中包含当前节点的find操作的最佳调用方式是什么?翻阅文档,没有什么能立即引起我的注意。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-07-09 08:46:01

对于jQuery 1.8和更高版本,您可以使用.addBack()。它需要一个选择器,所以你不需要过滤结果:

代码语言:javascript
复制
object.find('selector').addBack('selector')

在jQuery 1.8之前,您必须使用.andSelf() (现在已弃用并删除),然后需要过滤:

代码语言:javascript
复制
object.find('selector').andSelf().filter('selector')
票数 167
EN

Stack Overflow用户

发布于 2010-05-13 23:32:22

您不能直接执行此操作,我能想到的最接近的方法是使用.andSelf()并调用.filter(),如下所示:

代码语言:javascript
复制
$(selector).find(oSelector).andSelf().filter(oSelector)
//or...
$(selector).find('*').andSelf().filter(oSelector);

不幸的是,.andSelf()没有带选择器,这会很方便。

票数 41
EN

Stack Overflow用户

发布于 2015-07-23 19:27:05

定义

代码语言:javascript
复制
$.fn.findSelf = function(selector) {
    var result = this.find(selector);
    this.each(function() {
        if ($(this).is(selector)) {
            result.add($(this));
        }
    });
    return result;
};

然后使用

代码语言:javascript
复制
$.findSelf(selector);

而不是

代码语言:javascript
复制
$find(selector);

遗憾的是,jQuery没有内置此功能。经过这么多年的发展真的很奇怪。由于.find()的工作方式,我的AJAX处理程序没有应用于某些顶级元素。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2828019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档