Jquery append-打开和关闭标记

Jquery append-打开和关闭标记,jquery,Jquery,我有一个这样的jquery块。呈现html后,我看到如果您希望所有元素都在article标记中,您应该编写: .append( $( '<article class="preview"> ) .append( ... ) ) .append( $( ' ) .append(…) ) Jquery的append函数将DOM节点、HTML字符串或javascript对象作为输入。因此,当您调用第一个append时,文章没有结束标记,因此它通过为您添加结束标记将其构建到一个完

我有一个这样的jquery块。呈现html后,我看到
如果您希望所有元素都在article标记中,您应该编写:

.append(
   $( '<article class="preview"> )
   .append( ... )
)
.append(
$( ' )
.append(…)
)

Jquery的append函数将DOM节点、HTML字符串或javascript对象作为输入。因此,当您调用第一个append时,文章没有结束标记,因此它通过为您添加结束标记将其构建到一个完整的DOM节点中。然后,当您要追加下一项时,它实际上会完全追加到上一个DOM节点之后(在结束标记之后)

相反,我建议您首先构建HTML字符串,然后一次将其全部追加

例如,您应该执行以下操作:

var html = "<article class='preview'><div class='bar'><span class='left'><small>........";
$("#newlist").append(html);
var html=“……”;
$(“#新列表”).append(html);
当然,有更好的方法可以做到这一点,比如使用Mustache.JS这样的模板引擎,但这至少可以让它为您工作


希望这有助于

而不是将每一行追加,您可以将其存储在一个变量中,如下所示,并将其全部追加在一起:

content = '';

content += '<article class="preview">';
content += '<div class="bar">';
content += '<span class="left"><small>'+value.dTime+'</small></span>';
content='';
内容+='';
内容+='';
content+=''+value.dTime+'';
等等


然后在最后添加内容。只需将其放入您的功能中。

不,这是一个预期行为。谢谢您的回复。我可以说这是最好的方法吗?我个人更喜欢使用模板引擎,但这取决于你需要做多少次。老实说,如果这种情况很少发生,也没关系,但是如果您需要这样做两到三次以上,我会使用诸如Mustache.JS()之类的模板引擎来呈现HTML
content = '';

content += '<article class="preview">';
content += '<div class="bar">';
content += '<span class="left"><small>'+value.dTime+'</small></span>';