我在网上看到很多指南在jQuery中创建一个新元素,如下面的代码
var input = $('<input>', {
id: 'FormUsername',
name: 'username',
type: 'text',
value: 'Enter your username...',
focusin: function() {
$(this).val('');
}
}).appendTo(someElement);
这会创建一个输入元素并将其追加。我想创建一个div元素并将此输入元素添加到它,然后追加它。我该怎么做?
谢谢, 亚历
答案 0 :(得分:5)
在添加元素之前,您可以使用.wrap()将元素包装到另一个元素中:
var input = $('<input>', {
id: 'FormUsername',
name: 'username',
type: 'text',
value: 'Enter your username...',
focusin: function() {
$(this).val('');
}
}).wrap('<div/>').parent().appendTo(someElement);
注意:你必须调用.parent(),因为.wrap()会不返回包装元素
<强> DEMO 强>
如果需要向包装div添加属性,也可以分几步完成,语法类似:
var input = $('<input>', { ... });
// create a div element with an ID=wrapper
$('<div/>', { id: 'wrapper' })
// append the input to it
.append(input)
// append the div to "someElement"
.appendTo(someElement);
<强> DEMO 强>
答案 1 :(得分:1)
相同的语法,真的:
var input = $('<input>', {
id: 'FormUsername',
name: 'username',
type: 'text',
value: 'Enter your username...',
focusin: function() {
$(this).val('');
}
});
var div = $('<div>', {
id: 'SomeWrapperDiv'
}).append(input);
div.appendTo(someElement);
答案 2 :(得分:0)
你可以试试这个。
var input = $('<input>', {
id: 'FormUsername',
name: 'username',
type: 'text',
value: 'Enter your username...',
focusin: function() {
$(this).val('');
}
})
$('<div>', {
id: 'divId',
class: 'className'
})
.append(input)
.appendTo(someElement);
答案 3 :(得分:0)
使用wrap函数:
var input = $('<input>', {
id: 'FormUsername',
name: 'username',
type: 'text',
value: 'Enter your username...',
focusin: function() {
$(this).val('');
}
}).wrap('<div></div>').parent().appendTo(someElement);
包裹docs:
描述:围绕匹配元素集中的每个元素包装HTML结构。
答案 4 :(得分:0)
这可能对你有帮助:
var div = $("<div>");
var input = $('<input>', {
id: 'FormUsername',
name: 'username',
type: 'text',
value: 'Enter your username...',
focusin: function() {
$(this).val('');
}
});
div.html("I'm the div");
div.append(input);
$("body").append(div);
答案 5 :(得分:0)