我确定我在这里遗漏了一些东西,使用以下代码:
var $divs = $();
$.each([1, 2, 3], function (i, val) {
$divs.add($('<div>' + val + '</div>'));
});
alert($divs.length); //output 0 { not really expected }
$divs
是空对象。
为了获得预期的行为,我需要$divs
像这样重新影响 var:
var $divs = $();
$.each([1, 2, 3], function (i, val) {
$divs = $divs.add($('<div>' + val + '</div>'));
});
alert($divs.length); //output 3 { as expected }
有人可以解释我为什么吗?这样做的正确方法是什么?
编辑
最后,正如你们所有人指出的那样,这是预期的行为。实际上,保持匹配集不变是正确的。这就像使用值而不是引用匹配的对象集。