我遇到过以下jQuery代码,但无法理解。以下代码是什么,特别是最后一行中的“$([])”部分是什么意思?
var instrument = $("#instrument"),
quantity = $("#quantity"),
orderType = $("#orderType"),
price = $("#price"),
validityDate = $("#validityDate"),
allFields = $([]).add(instrument).add(quantity).add(orderType).add(price).add(validityDate)
答案 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版本中,这将返回一个包含文档节点的集合。
答案 2 :(得分:2)
这将创建一个空的jQuery对象 - 即具有0个引用的DOM节点的集合。
大多数情况下,您会发现jQuery函数$
应用于CSS选择器,DOM中的单个或多个节点。在这种特殊情况下,使用这三个“重载”中的最后一个,从空数组构造一个空的jQuery对象,然后使用add()
向其添加新的DOM节点。
您的特定代码示例有点冗长,因为可以像这样实现:
var allFields = $("#instrument, #quantity, #orderType, #price, #validityDate");