为什么要从另一个jQuery对象创建jQuery对象?

时间:2016-09-28 09:33:42

标签: jquery

一旦你有一个jQuery对象就像你所做的那样:

var car = $('li .car');

我看到代码执行以下操作:

var carChildren = $(car).children('span');

有什么意义? 为什么不在这样的jQuery var car上使用.children方法呢?

var carChildren = car.children('span');

1 个答案:

答案 0 :(得分:1)

简而言之:
没有理由这样做。但它也没有结果。它基本上只是糟糕的做法。所以不要这样做。

<强> TL; DR
如前所述,它毫无意义,没有任何区别。让我们考虑一下这些线路的作用。为了清楚起见,我们将其写在一行:

var car = $('li .car');
var carChildren = $(car).children('span');

与:

相同
var carChildren = $($('li .car')).children('span');

没有人会这样做!有人写$(car)的原因是他们可能会被像$(this)之类的东西混淆,这些东西经常会在很多时候写下来。

为什么它还能运作?

如果你写$(car),jQuery会注意到car已经是一个jQuery对象并将其替换为它的上下文。但这是一项不必要的任务,可以保存。

这就是说,您也可以直接使用car作为上下文。

var carChildren = $('span', car);