我敢肯定,我失去了一些東西在這裏,使用此代碼裏面:元素添加到jQuery對象每個循環
var $divs = $();
$.each([1, 2, 3], function (i, val) {
$divs.add($('<div>' + val + '</div>'));
});
alert($divs.length); //output 0 { not really expected }
$divs
是空的對象。
要獲得預期的行爲,我需要reaffect爲VAR $divs
這樣的:
var $divs = $();
$.each([1, 2, 3], function (i, val) {
$divs = $divs.add($('<div>' + val + '</div>'));
});
alert($divs.length); //output 3 { as expected }
有人能解釋我爲什麼?這樣做的正確方法是什麼?
編輯
最後,這是預期的行爲,因爲所有的你指出它。事實上,保持匹配集合不變是正確的。這就像使用值而不是引用一組匹配對象。
http://bugs.jquery.com/ticket/9055 – lifetimes
好吧,看起來像預期的行爲,真的很奇怪IMO:「這不是一個錯誤,這是.add一直工作的方式。 .add不*改變原始集合,它返回一個新的集合。如果你想將結果保存到原始變量中,你必須使用一個任務。「 –
好吧,夥計們,應該仔細閱讀文檔,對不起! –