如何创建一个空的jQuery结果

32

编辑: 从jQuery 1.4开始,使用$()将按照下面所述正常工作。


我需要循环遍历一个数组并创建一些元素,我想要将它们放在一个单独的jQuery结果对象中。

for (var i = 0; i < 10; ++i) {
    $myJQueryObj = $myJQueryObj.add($("<span>blahblah</span>"));
}
然而,这种方法需要先有一个jQuery对象,而您显然希望它是空的。在上面的例子中,我该如何初始化$myJQueryObj呢?
以下示例都无法正常工作,因为它们都选择文档对象:
$('')
$()
$(null)
$(false)

这些确实有用... 但是...

$('#nonExistantElement')  // yuck
$().slice(0,0)            // surely there's a nicer way?

有更好的方法吗?

2个回答

60

是的。尝试使用$([])。之所以$()不起作用,是因为jQuery需要一个上下文,如果没有提供,则默认将document作为上下文。许多事情都依赖于这个假设的真实性,因此将$()更改为意味着“给我空集”将会带来问题。


16
啊,我在发布问题后很快就想到了解决方法。以下是我的发现,如果有其他人也感兴趣的话:


$([])

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