我也建议使用函数,我的方法与其他基于函数的方法大致相同,但涉及创建具有各种属性的元素,而不是将 HTML 视为字符串(两种方式都有效,而 HTML- as-string 方法当然更简洁)。
但是,根据我的经验,这种方法可以更轻松地修改输出,而无需记住您的 HTML 字符串是否正确关闭和转义:
function prependNewPost(elem, stream) {
var outerDiv = $('<div />', {
'id': stream.sid,
'class': 'row stream-posts'
}),
innerDiv = $('<div />', {
'class': 'span1 stream-thumb'
}).appendTo(outerDiv),
ul = $('<ul />', {
'class': 'thumnails'
}).appendTo(innerDiv),
li = $('<li />').appendTo(ul),
a = $('<a />', {
'href': '#'
}).appendTo(li),
image = $('<img />', {
'src': 'http://placehold.it/60x60',
'alt': ''
}).appendTo(a),
secondInnerDiv = $('<div />', {'class' : 'span5 stream-content'}).appendTo(outerDiv);
var p = $('<p />').text(stream.text).appendTo(secondInnerDiv);
outerDiv.prependTo(elem);
}
$('#add').click(
function() {
var stream = {};
stream.sid = 'two';
stream.author = 'Geoff';
stream.text = 'Some text, a pseudo-Lorem ipsum, if you will...';
prependNewPost($('#stream'),stream);
});
JS 小提琴演示。
参考: