jQuery中的$([])是什么意思?

5

我看到了以下 jQuery 代码,但是不理解它的含义。请问下面的代码,特别是最后一行中的 "$([])" 部分是什么意思?


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

10

代码看起来是定义一个数组,然后使用add()将DOM元素添加到数组中。根据手册:

  

给定一个代表一组DOM元素的jQuery对象,.add()方法从这些元素和传递给该方法的元素构造一个新的 jQuery 对象。.add()的参数可以是 $() 接受的任何内容,包括 jQuery 选择器表达式、对 DOM 元素的引用或 HTML 片段。

[] 是一个空的 JavaScript 数组。正如frunsi所指出的那样,这不是正确的用法,1.4 中 $() 将为您创建一个空元素集合,不需要定义 []


6
它创建了一个空的jQuery集合。虽然这样使用可能有效,但是这种用法是错误的。 [] 是多余的。
正确的用法应该只是 $()
从jQuery 1.4开始,调用没有参数的jQuery()方法将返回一个空的jQuery集合。在jQuery的早期版本中,它会返回包含文档节点的集合。 http://api.jquery.com/jQuery/

2
那将创建一个空的jQuery对象,即具有0个引用的DOM节点集合。
通常,您会发现jQuery函数$应用于CSS选择器、单个或多个来自DOM的节点。在这种特殊情况下,使用了这三个“重载”中的最后一个,从空数组构造一个空的jQuery对象,然后使用add()添加新的DOM节点。
尽管如此,您的代码示例有点啰嗦,因为可以像这样实现相同的效果:
var allFields = $("#instrument, #quantity, #orderType, #price, #validityDate");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接