jQuery中的元素创建; 创建,包装,追加

Dan*_*ugg 0 html javascript jquery dom

比较快;

我正在动态创建一些元素,并将它们附加到另一个元素.

$element = $('<input />', {
    // attributes
}).add('<label />', {
    // attributes
});
Run Code Online (Sandbox Code Playgroud)

这产生<input /><label></label>了各自的属性和内容.我只是想把它包装成一个<div>并且认为会有一个同样干净的方式这样做,但我似乎无法让以下工作:

$element = $('<input />', {
    // attributes
}).add('<label />', {
    // attributes
}).wrapAll('<div />');
Run Code Online (Sandbox Code Playgroud)

如果我是console.log()我的$element,那只是<input><label>.我也试过了

$element = $($('<input />', {
    // attributes
}).add('<label />', {
    // attributes
})).wrapAll('<div />');
Run Code Online (Sandbox Code Playgroud)

分别选择要追加的元素<input><label>元素,然后应用.wrapAll(),但也不起作用,导致与上面相同.

我接近了吗?我应该走另一条路吗?


感谢@mu,结束了以下情况

$element = $('<div />').append($('<input />', {
    // attr
}).add('<label />', {
    // attr
}));
Run Code Online (Sandbox Code Playgroud)

哦jQuery; 七百万种方式做同样的事情,有时你无法弄清楚一个.


编辑

只为未来的访客添加; 该append方法也可以采用数组:

$('<div />').append([
    $('<div />'),
    $('<div />'),
    $('<div />'),
]);
Run Code Online (Sandbox Code Playgroud)

哪个会产生:

<div>
    <div></div>
    <div></div>
    <div></div>
</div>
Run Code Online (Sandbox Code Playgroud)

所以你不需要链接来电append().

mu *_*ort 5

为什么不这样做呢?

var $div = $('<div>').append($element);
Run Code Online (Sandbox Code Playgroud)

例如:http://jsfiddle.net/ambiguous/CQDe8/1/