我在创建文档片段,向其追加元素并返回该片段时遇到错误。我过去曾使用过文档片段(在这个例子之外滥用它们)并且从未遇到过这个错误。在开发人员控制台中,它将此列为错误的来源:
fragment.appendChild($balanceNumber, $balanceSign);
错误
Uncaught NotFoundError:尝试在不存在的上下文中引用Node。
功能
var constructBalanceFragment = function(balance) {
var $balanceNumber, $balanceSign, fragment, sign;
fragment = document.createDocumentFragment();
$balanceNumber = $('<span class="balance_number"></span>');
$balanceSign = $('<span class="balance_sign"></span>');
if (balance > 0) {
sign = "+";
$balanceSign.addClass("positive_number");
} else if (balance < 0) {
sign = "-";
$balanceSign.addClass("negative_number");
} else {
sign = "";
}
$balanceNumber.text(balance);
$balanceSign.text(sign);
fragment.appendChild($balanceNumber, $balanceSign);
return fragment;
修改
我试过这个并且在任何人询问之前仍然遇到同样的错误
fragment.appendChild($balanceNumber);
fragment.appendChild($balanceSign);
答案 0 :(得分:2)
这更接近你的原创,似乎有效,保持jQuery的精神:
$(fragment).append($balanceNumber, $balanceSign);
答案 1 :(得分:1)
解决方法
我使用$object.appendTo(fragment)
vs fragment.appendChild($object)
修复此问题,以便将来参与其中。