jQuery筛选方法混淆
我试图使用filter方法过滤jQuery对象,但没有得到预期的结果。这是我的密码:jQuery筛选方法混淆,jquery,jquery-selectors,Jquery,Jquery Selectors,我试图使用filter方法过滤jQuery对象,但没有得到预期的结果。这是我的密码: var $contents = $(".container"); var $spans = $contents.filter("span"); 根据我的理解,这应等同于以下内容: var $spans = $(".container span"); 但是,第一个示例没有将结果返回到$spans变量中,而第二个示例执行我所期望的操作 有人能解释为什么
var $contents = $(".container");
var $spans = $contents.filter("span");
根据我的理解,这应等同于以下内容:
var $spans = $(".container span");
但是,第一个示例没有将结果返回到$spans变量中,而第二个示例执行我所期望的操作
有人能解释为什么第一个示例不返回容器中所有span元素的集合吗
下面是一个例子来说明这个问题:过滤器-用于过滤结果
var $spans = $contents.filter("span"); // <-- filters out the span that are inside $contents collection
其他的
var $spans = $(".container span.container"); // <-- gets descendant spans inside .container
等于
var $spans = $(".container").find('span');
等于
var $spans = $('span',".container");
过滤器-用于过滤出您的结果
var $spans = $contents.filter("span"); // <-- filters out the span that are inside $contents collection
其他的
var $spans = $(".container span.container"); // <-- gets descendant spans inside .container
等于
var $spans = $(".container").find('span');
等于
var $spans = $('span',".container");
这是因为您正在创建一个包含div标记的jQuery对象,因为集合中没有选定的span元素,长度为0
您需要的是
find
或children
方法。这是因为您正在创建一个包含div标记的jQuery对象,因为集合中没有选定的span元素,长度为0
您需要的是find
或children
方法。这些方法是等效的:
$contents.filter("span")
$("span.container");
$contents.find("span");
$(".container span")
因为两者都会找到span
s的元素,其类为container
那么,这些是等价的:
$contents.filter("span")
$("span.container");
$contents.find("span");
$(".container span")
由于两者都会发现span
s包含在一个类为container
的元素中,它们是等效的:
$contents.filter("span")
$("span.container");
$contents.find("span");
$(".container span")
因为两者都会找到span
s的元素,其类为container
那么,这些是等价的:
$contents.filter("span")
$("span.container");
$contents.find("span");
$(".container span")
因为两者都会找到span
s,它们包含在一个类为容器的元素中
。filter()
会查看所选的元素。不是在它的后代。如果要选择
的后代,可以采用多种方法。下面介绍如何使用find()
执行此操作。但这可能不是最有效的方法
var $contents = $(".container");
$contents.find("*").filter("span");
这些可能更有效
$(".container span")
$contents.find("span")
如果你想要孩子,那么你可以使用以下方法
$contents.children("span")
还有$(元素的后代)
选择器。但我认为在对代码进行故障排除时,这一条很难理解,因此我很少使用它。.filter()
查看所选的元素。不是在它的后代。如果要选择
的后代,可以采用多种方法。下面介绍如何使用find()
执行此操作。但这可能不是最有效的方法
var $contents = $(".container");
$contents.find("*").filter("span");
这些可能更有效
$(".container span")
$contents.find("span")
如果你想要孩子,那么你可以使用以下方法
$contents.children("span")
还有
$(元素的后代)
选择器。但我认为在对代码进行故障排除时,这一条很难理解,因此我很少使用它。.filter()
查看所选的元素。而不是它的孩子们。是否要选择
的子级?请查看修改后的。让我知道这是否是你要找的。是的,没错。只是看了一下文档,显然我需要使用children方法。谢谢你指出显而易见的——我需要它.filter()
查看选定的元素。而不是它的孩子们。是否要选择
的子级?请查看修改后的。让我知道这是否是你要找的。是的,没错。只是看了一下文档,显然我需要使用children方法。谢谢你指出显而易见的——我需要它!说find
选择子对象有点误导<代码>查找选择子代,子代与子代有区别<代码>子项选择子项。是。这是真的。我会更新我的帖子。感谢您的评论/更正!说find
选择子对象有点误导<代码>查找选择子代,子代与子代有区别<代码>子项选择子项。是。这是真的。我会更新我的帖子。感谢您的评论/更正!