我遇到了下面的jQuery代码,但我不能理解它。下面的代码,特别是最后一行中的"$([])“部分是什么意思?
var instrument = $("#instrument"),
quantity = $("#quantity"),
orderType = $("#orderType"),
price = $("#price"),
validityDate = $("#validityDate"),
allFields = $([]).add(instrument).add(quantity).add(orderType).add(price).add(validityDate)
发布于 2010-04-13 20:58:09
看起来像是定义了一个数组,然后将DOM元素add()到它。从手册中:
给定一个表示一组DOM元素的jQuery对象,.add()方法从这些元素和传入该方法的元素的并集构造一个新的jQuery对象。.add()的参数几乎可以是$()接受的任何内容,包括jQuery选择器表达式、对DOM元素的引用或HTML代码片段。
[]
是一个空的javascript数组。作为frunsi notes,这不是正确的用法,并且不需要[]
定义来创建空的元素集,在1.4版本中,$()
将为您做这些工作。
发布于 2010-04-13 20:58:13
它会创建一个空的jQuery集。这种用法是错误的,尽管它可能会起作用。[]
是多余的。
正确的方法就是$()
。
返回空集的
从jQuery 1.4开始,调用不带参数的jQuery()方法将返回一个空的jQuery集。在以前的jQuery版本中,这将返回一个包含文档节点的集合。
http://api.jquery.com/jQuery/
发布于 2010-04-13 20:58:57
这将创建一个空的jQuery对象-即具有0个引用的DOM节点的集合。
大多数情况下,您会发现jQuery函数$
应用于一个CSS选择器、DOM中的单个或多个节点。在本例中,这三个“重载”中的最后一个用来从一个空数组构造一个空的jQuery对象,然后使用add()
将新的DOM节点添加到该对象中。
但是,您的特定代码示例有点冗长,因为可以像这样实现相同的结果:
var allFields = $("#instrument, #quantity, #orderType, #price, #validityDate");
https://stackoverflow.com/questions/2629621
复制相似问题