Javascript jQuery使用上下文对选择应用选择器有奇怪的行为
假设我使用一个jQuery选择器输出,据我所知,它是一个jQuery对象:Javascript jQuery使用上下文对选择应用选择器有奇怪的行为,javascript,jquery,Javascript,Jquery,假设我使用一个jQuery选择器输出,据我所知,它是一个jQuery对象: var myimg=$('img'); 现在我想玩这个选择,假设我想从第一个选择中选择在src属性中有字符串jpg的图像。这是行不通的: var myimg3=$("[src*=jpg]",myimg); 实际上,$('img',myimg)。长度将为0 在这种情况下,jquery会尝试选择嵌套在所选图像中的img元素(请参阅下面JSFIDLE中的div元素示例) 获得预期行为的正确方法应该是什么 下面是一个示例:
var myimg=$('img');
现在我想玩这个选择,假设我想从第一个选择中选择在src
属性中有字符串jpg
的图像。这是行不通的:
var myimg3=$("[src*=jpg]",myimg);
实际上,$('img',myimg)。长度将为0
在这种情况下,jquery会尝试选择嵌套在所选图像中的img元素(请参阅下面JSFIDLE中的div元素示例)
获得预期行为的正确方法应该是什么
下面是一个示例:这是因为您没有进行过滤:您实际上是在使用src属性(其中包含“jpg”)为图像元素中的子元素进行选择。您想要的是使用.filter()
:即myimg.filter('[src*=“jpg”]')
是的。filter()可以工作。我已经修改了JSFIDLE以表示感谢。但是,我如何构建一个对象来封装选择,使选择器应用于每个选定元素而不是它们的子元素呢?修改后的jsfiddle显示.filter()实际上可以工作,这是因为您没有进行过滤:您实际上是在图像元素中为具有“jpg”在其中。您需要使用的是.filter()
:即myimg.filter('[src*=“jpg”]')
Yes.filter()我已经修改了JSFIDLE来表示感谢。但是我如何构建一个对象来封装所选内容,使选择器应用于每个所选元素而不是它们的子元素呢?修改后的JSFIDLE表明.filter()确实有效