Hob*_*use 20 html jquery dom nested
给出这些javascript变量:
var div_id = "my_div";
var h1_class = "my_header";
var a_class = "my_a_class";
var a_string = "teststring";
Run Code Online (Sandbox Code Playgroud)
和这个页面元素:
<div id="container"></div>
Run Code Online (Sandbox Code Playgroud)
我想用jQuery构建这个html结构:
<div id="container">
<div id="my_div">
<h1 class="my_header">
<a href="/test/" class="my_a_class">teststring</a>
</h1>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在这里链接命令的最佳和最可读的方法是什么?
Luc*_*ofi 20
更新
JSON
var widgets = [{
"div" : {
"id" : "my-div-1"
},
"h1" : {
"class" : "my-header"
},
"a" : {
"class" : "my-a-class",
"text" : "google",
"href" : "http://www.google.com"
}
}, {
"div" : {
"id" : "my-div-2"
},
"h1" : {
"class" : "my-header"
},
"a" : {
"class" : "my-a-class",
"text" : "yahoo",
"href" : "http://www.yahoo.com"
}
}];
$(function() {
$.each(widgets, function(i, item) {
$('<div>').attr('id', item.div.id).html(
$('<h1>').attr('class', item.h1.class).html(
$('<a>').attr({
'href' : item.a.href,
'class' : item.a.class
}).text(item.a.text))).appendTo('#container');
});
});
Run Code Online (Sandbox Code Playgroud)
这是围绕所需输出链接命令的最整洁方法:
var div_id = "my_div";
var h1_class = "my_header";
var a_class = "my_a_class";
var a_string = "teststring";
var new_div = $("<div>").attr("id",div_id).append(
$("<h1>").addClass(h1_class).append(
$("<a>").attr("href","/test/").addClass(a_class).text(a_string)
)
);
$("div#container").append(new_div);
Run Code Online (Sandbox Code Playgroud)
不一定是最权宜之计,但肯定是可读的.
wrapInner()从内到外使用和包裹.
var div_id = "my_div",
h1_class = "my_header",
my_a_class = "my_a_class";
$('#container').wrapInner('<a href="/test/" class="' + my_a_class + '">'+a_string+'</a>').wrapInner('<h1 class="' + h1_class + '"/>').wrapInner('<div id="' + div_id + '"/>');
Run Code Online (Sandbox Code Playgroud)