$([])在jQuery中意味着什么

时间:2010-04-13 12:54:57

标签: jquery

我遇到过以下jQuery代码,但无法理解。以下代码是什么,特别是最后一行中的“$([])”部分是什么意思?

var instrument = $("#instrument"),
    quantity = $("#quantity"),
    orderType = $("#orderType"),
    price = $("#price"),
    validityDate = $("#validityDate"),
    allFields = $([]).add(instrument).add(quantity).add(orderType).add(price).add(validityDate)

3 个答案:

答案 0 :(得分:10)

看起来它正在定义一个数组,然后add()将DOM元素添加到它。从手册:

  

给出一个代表的jQuery对象   一组DOM元素,.add()   method构造一个新的jQuery对象   从这些元素的结合和   传递给方法的那些。该   .add()的参数可能非常多   $()接受的任何内容,包括a   jQuery选择器表达式,引用   到DOM元素或HTML片段。

[]是一个空的javascript数组。作为frunsi notes,这不是正确的用法,[]定义不需要创建一组空元素,在1.4 $()中将为您做。

答案 1 :(得分:7)

它创建一个空的jQuery集。这种用法是错误的,虽然它可能有效。 []是多余的。

正确就是$()

  

返回空集

     

从jQuery 1.4开始,调用不带参数的jQuery()方法会返回一个空的jQuery集。在以前的jQuery版本中,这将返回一个包含文档节点的集合。

http://api.jquery.com/jQuery/

答案 2 :(得分:2)

这将创建一个空的jQuery对象 - 即具有0个引用的DOM节点的集合。

大多数情况下,您会发现jQuery函数$应用于CSS选择器,DOM中的单个或多个节点。在这种特殊情况下,使用这三个“重载”中的最后一个,从空数组构造一个空的jQuery对象,然后使用add()向其添加新的DOM节点。

您的特定代码示例有点冗长,因为可以像这样实现:

var allFields = $("#instrument, #quantity, #orderType, #price, #validityDate");