jQuery - 如何将多个节点附加到容器

sad*_*ave 2 jquery append dom-manipulation nodes

我需要将多个节点附加到容器.我不想在每次迭代中添加一个缓慢的DOM追加,而是想要将文档片段中的节点排队(对其他想法开放)并一次追加它们.这是我的代码:

var fragment = document.createDocumentFragment();
$.each( poFailureInfoMultiple, function(i,e){
    fragment.appendChild(
         $('<button/>', {
            'class': 'el-contents-center multiple-record'
         })
    );
});

$('#some-container').html( fragment );
Run Code Online (Sandbox Code Playgroud)

我的问题是我收到一条错误消息:

Could not convert JavaScript argument arg 0 [nsIDOMDocumentFragment.appendChild]
Run Code Online (Sandbox Code Playgroud)

那么如何一次将多个元素节点附加到我的DOM?我没有必要使用片段方法(我刚刚找到它,它似乎可行).

注意: 我不想为APPENDX使用HTML语法

i.e. $('#some-container').append('<button class="myclass"></button>');
Run Code Online (Sandbox Code Playgroud)

spa*_*tes 9

var elemsToAppend=$()

$.each( poFailureInfoMultiple, function(i,e){
    elemsToAppend = elemsToAppend.add(
        $('<button/>', {
            'class': 'el-contents-center multiple-record'
        })
    )
}); 
$('#some-container').append(elemsToAppend)
Run Code Online (Sandbox Code Playgroud)

jQuery对象上的add方法不会改变对象本身,但会返回一个新对象,这就是您需要的原因elemsToAppend = elemsToAppend.add(...).老实说,我不能说这种方法有多快.我实际上认为html方式更快.