附加到documentFragment时出错

时间:2013-08-23 21:27:04

标签: jquery

我在创建文档片段,向其追加元素并返回该片段时遇到错误。我过去曾使用过文档片段(在这个例子之外滥用它们)并且从未遇到过这个错误。在开发人员控制台中,它将此列为错误的来源:

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);

2 个答案:

答案 0 :(得分:2)

这更接近你的原创,似乎有效,保持jQuery的精神:

$(fragment).append($balanceNumber, $balanceSign);

http://jsfiddle.net/TfDXD/1/

答案 1 :(得分:1)

解决方法

我使用$object.appendTo(fragment) vs fragment.appendChild($object)修复此问题,以便将来参与其中。