在jQuery中创建以下div元素的最佳方法是什么?
<div class="btn-group">
<button class="btn dropdown-toggle" title="Manage" data-toggle="dropdown">
<span class="caret"></span>
</button>
</div>
我尝试了多种格式,但我似乎无法做到正确。
var itemsButtonsDiv = $('<div><button><span></span></button></div>')
.addClass("btn-group")
.attr({
title: "Manage",
"data-toggle": "dropdown"
})
.find("button")
.addClass("btn dropdown-toggle")
.find("span")
.addClass("caret")
;
var itemsButtonsDiv = $("<div><button><span></span></button></div>", {
"class": "btn-group",
html: " ?? Does everything else go here as one long text string ?? "
});
我意识到我必须在创建它之后单独附加元素,但是我无法正确创建它。
答案 0 :(得分:3)
如果我建议采用传统方法,我会做这样的事情:
var group = document.createElement("div");
group.className = "btn-group";
var btn = document.createElement("button");
btn.className = "btn dropdown-toggle";
btn.title = "Manage";
btn.setAttribute("data-toggle","dropdown");
var caret = document.createElement("span");
caret.className = "caret";
btn.appendChild(caret);
group.appendChild(btn);
如果你想从dom元素中创建一个jQuery元素,你可以$(group)
。
我相信这种传统方法有几个优点:
如果您发现时间过长,而且更常见 - 应将此类代码提取到方法
function buildButtonGroup(){
// rest of the code here
return group;
}
答案 1 :(得分:0)
我可以选择像
这样的东西var $div = $('<div />', {
class: 'btn-group'
});
var $btn = $('<button />', {
class: 'btn dropdown-toggle'
}).appendTo($btn)
$('<span />', {
class: 'caret'
}).appendTo($div)
对于更复杂的dom结构,我可以选择underscore
或jsrender
等模板
答案 2 :(得分:0)
这应该可行,但您也可以构建一个html字符串并将其转换为$(html);
;
var btnGroup = $("<div/>", {"class": "btn-group"});
var btn = $('<button/>', {
'class': 'btn dropdown-toggle',
title: "Manage",
"data-toggle": "dropdown"
});
btn.append($('<span/>', {'class': 'caret'});
btnGroup.append(btn);
这也是可以接受的:
var btnGroup = $('<div class="btn-group"> <button class="btn dropdown-toggle" title="Manage" data-toggle="dropdown"> <span class="caret"></span> </button> </div>');