Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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,在下面的代码段中,为什么长度应为1,而长度为0 var jQueryObj=$(“测试””; //显示长度 $('body').html($('p',jQueryObj).length) 当您将上下文传递给jQuery时,它相当于使用该方法,该方法查看子元素。从: 在内部,选择器上下文是通过.find()方法实现的, 所以$('span',this)相当于$(this).find('span') 您的p元素不是后代,因此需要使用: filter方法将匹配的元素集减少为与选择器匹配的元素集(或通

在下面的代码段中,为什么长度应为1,而长度为0

var jQueryObj=$(“测试”

”; //显示长度 $('body').html($('p',jQueryObj).length)
当您将上下文传递给jQuery时,它相当于使用该方法,该方法查看子元素。从:

在内部,选择器上下文是通过.find()方法实现的, 所以$('span',this)相当于$(this).find('span')

您的
p
元素不是后代,因此需要使用:


filter
方法将匹配的元素集减少为与选择器匹配的元素集(或通过函数定义的测试)。在您的情况下,匹配的元素集包含一个元素(
p
),它将与选择器匹配。

在您的
jQueryObj
中根本没有
元素

使用
jQueryObj
作为上下文将限制对所提供选择器的搜索。这与写作是一样的:

jQueryObj.find('p');
在内部,jquery在使用语法
$(选择器,上下文)
时实际使用.find(),如文档中所述:

在内部,选择器上下文是通过.find()方法实现的, 所以$('span',this)相当于$(this).find('span')

进一步阅读:


当您提供上下文时,您告诉jQuery在该上下文中查找
p
元素,因此您的选择器将查找作为上下文子元素的任何
p
标记

如果将容器添加到上下文中,它将能够找到该元素

var jQueryObj=$(“测试”

”; //显示长度 $('body').html($('p',jQueryObj).length)
您正在原始
中搜索
jQueryObj
已表示
标记)

由于原始
元素中没有
元素,因此搜索不会返回任何结果

jQueryObj.find('p');