Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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 $(“找到”)和$.find(“找到”)之间有什么区别?_Javascript_Jquery - Fatal编程技术网

Javascript $(“找到”)和$.find(“找到”)之间有什么区别?

Javascript $(“找到”)和$.find(“找到”)之间有什么区别?,javascript,jquery,Javascript,Jquery,我无法理解$(“”)和$之间的区别。查找(“”)。当没有匹配项,但您尝试对结果执行某些操作时(如调用toggle()),它们的行为会有所不同 为什么?:-) 在我的上下文中,我有一个函数,它使用$全局搜索元素,当没有匹配项时没有问题。现在我想允许函数只在指定的元素(包装在jQuery对象中)内搜索。但如果我通过$本身,它仍然应该可以工作。请参阅官方jQuery文档,其中说明: 给定一个表示一组DOM元素的jQuery对象,.find()方法允许我们搜索这些元素的后代(…) 因此,换句话说,.fi

我无法理解
$(“”)
$之间的区别。查找(“”)
。当没有匹配项,但您尝试对结果执行某些操作时(如调用
toggle()
),它们的行为会有所不同

为什么?:-)


在我的上下文中,我有一个函数,它使用
$
全局搜索元素,当没有匹配项时没有问题。现在我想允许函数只在指定的元素(包装在jQuery对象中)内搜索。但如果我通过
$
本身,它仍然应该可以工作。

请参阅官方jQuery文档,其中说明:

给定一个表示一组DOM元素的jQuery对象,.find()方法允许我们搜索这些元素的后代(…)

因此,换句话说,
.find()
仅当您希望在已选择的元素中查找时才能正常工作。find(“”返回一个空数组,因此当您使用
[]时,它会抛出一个错误。toggle()
,因为数组没有切换方法

将其包装到jQuery中,即$like
$($.find(“”)
返回一个空对象
object[]
,在jQuery对象中使用toggle()不会引发错误

$.find是内部CSS选择器引擎(Sizzle),函数只返回找到的元素的和数组。它不是jQuery实例,因此没有像toggle这样的jQuery原型方法。(谢谢@dfsq)


jquery中没有速记方法,这是官方jquery文档所说的。查找方法:

获取当前匹配元素集中每个元素的后代 元素,由选择器、jQuery对象或元素过滤

$.find(“”)和$(“”)。find(“”)之间的差异是:
$.find从DOM树的最顶端开始遍历DOM,而$(“”)。find从指定的DOM元素开始遍历DOM,并尝试查找其子元素

实际上,
toggle
是一个jQuery函数,它只在jQuery对象中可用,但是
$。find()
不返回jQuery对象,而是返回普通的JavaScript对象。因此出现了错误

然而,任何jQuery选择器都会因此返回一个jQuery对象,如果您将这个
$.find
转换为jQuery对象,那么它就会工作

您可以尝试以下代码来检查对象是否为jQuery对象

$("#mainbar") instanceof jQuery
//Output: true

$.find("#mainbar") instanceof jQuery
//Output: false

$($.find("#mainbar")) instanceof jQuery
//Output: true

这是正确的答案。另外,
$.find
是一个内部CSS选择器引擎(Sizzle),该函数只返回找到的元素的和数组。它不是jQuery实例,因此没有像
toggle
这样的jQuery原型方法。
$("#mainbar") instanceof jQuery
//Output: true

$.find("#mainbar") instanceof jQuery
//Output: false

$($.find("#mainbar")) instanceof jQuery
//Output: true