$("")和$ .find("")之间有什么区别?

And*_*rej 4 javascript jquery

我不明白之间的差别$("")和$.find("").当没有匹配但是你试图对结果做某事时(例如调用toggle()),它们的行为会有所不同.

$("").toggle(); // No error

$.find("").toggle(); // An error

$("body").find("").toggle(); // No error!

$($.find("")).toggle(); // No error
Run Code Online (Sandbox Code Playgroud)

为什么?:-)

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

Bho*_*yar 6

$.find("")返回一个空数组,因此当您使用[].toggle()数组时没有切换方法会引发错误.

并将其包装在jQuery中,即$ like $($.find(""))返回一个空对象,Object[]并在jQuery对象中使用toggle()不会抛出错误.

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

在jquery中找不到用于查找的简写方法$ .find

  • 这是正确的答案.要添加它,`$ .find`是一个内部CSS选择器引擎(Sizzle),该函数只返回已找到元素的数组.它不是jQuery实例,因此没有像`toggle`这样的jQuery原型方法. (2认同)