简单的答案是,当您使用 DOM 时,您不能插入损坏的标签。但是,你可以改变你的心态。与其尝试添加<div>
,然后添加</div><div>
这么多元素,不如将其切换:
var $d = $('<div>').appendTo('#container');
$d.append(/*match*/);
$d.append(/*match*/);
$d.append(/*match*/);
$d = $('<div>').appendTo('#container');
$d.append(/*match*/);
$d.append(/*match*/);
$d.append(/*match*/);
等等。基本上,改变你的思维过程,将元素移动到 中,而不是用标记<div>
包装元素。<div>
您还可以保持运行记录,然后根据文本更改重置您的列表(如您所述)。例如
var matches = [],
$d = $('div');
$d.each(function(){
var $t = $(this);
if(matches.length > 0 && $(matches[0]).text() != $t.text()){
$('<div>',{'class':'wrapper'}).append(matches)
.appendTo('body');
matches = [];
}
matches.push(this);
});
if(matches.length > 0){
$('<div>',{'class':'wrapper'}).append(matches)
.appendTo('body');
}
上述示例