相对较快;
我正在动态创建一些元素,并将它们附加到另一个元素。
$element = $('<input />', {
// attributes
}).add('<label />', {
// attributes
});
这会产生<input /><label></label>
及其各自的属性和内容。我只是想在包装这个<div>
,并认为会有这样的一个同样干净的方式,但我似乎无法得到以下工作:
$element = $('<input />', {
// attributes
}).add('<label />', {
// attributes
}).wrapAll('<div />');
如果I console.log()
{我的{1}},这仅仅是$element
和<input>
。我也试过了
<label>
分别选择要附加的$element = $($('<input />', {
// attributes
}).add('<label />', {
// attributes
})).wrapAll('<div />');
和<input>
元素,并应用<label>
,但这也不起作用,导致与上面相同。
我关门了吗?我应该走另一条路吗?
结束以下感谢@mu
.wrapAll()
哦jQuery;有七百万种方法可以做同样的事情,有时候你无法找出一个。
修改
只为未来的访客添加; $element = $('<div />').append($('<input />', {
// attr
}).add('<label />', {
// attr
}));
方法也可以采用数组:
append
哪会产生:
$('<div />').append([
$('<div />'),
$('<div />'),
$('<div />'),
]);
因此您无需将呼叫链接到<div>
<div></div>
<div></div>
<div></div>
</div>
。
答案 0 :(得分:5)
答案 1 :(得分:2)
element = $('<div></div').html($('<input />', {
// attributes
}).add('<label />', {
// attributes
}));
答案 2 :(得分:1)
如果我理解正确,我认为您可能希望使用.appendTo()
代替.wrapAll()