Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery使用上下文对选择应用选择器有奇怪的行为_Javascript_Jquery - Fatal编程技术网

Javascript 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元素示例) 获得预期行为的正确方法应该是什么 下面是一个示例:

假设我使用一个jQuery选择器输出,据我所知,它是一个jQuery对象:

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()确实有效