Javascript 插入“;“无效”;满足于jQuery

Javascript 插入“;“无效”;满足于jQuery,javascript,jquery,Javascript,Jquery,我有以下星座: <dl> <dt>Content</dt> <dd>123</dd> <dt>Content</dt> <dd>123</dd> <dt>Content</dt> <dd>123</dd> </dt> 内容 123 内容 123 内容 123 我希望在不编辑源代

我有以下星座:

<dl>
    <dt>Content</dt>
    <dd>123</dd>
    <dt>Content</dt>
    <dd>123</dd>
    <dt>Content</dt>
    <dd>123</dd>
</dt>

内容
123
内容
123
内容
123
我希望在不编辑源代码的情况下实现以下目标:

<dl>
    <dt>Content</dt>
    <dd>123</dd>
</dl>
<dl>
    <dt>Content</dt>
    <dd>123</dd>
</dl>
<dl>
    <dt>Content</dt>
    <dd>123</dd>
</dt>

内容
123
内容
123
内容
123
我尝试了以下jQuery:

$('dd:not(:last-child)').after($('</dl><dl>'));
$('dd:not(:last child)')。在($('')之后;
问题是,jQuery似乎自行更正代码,因此输入的是
,而不是
。 是否有可能插入此在页面上下文中有效的“无效”代码?

尝试以下操作:

$('dd')。每个(函数(){
$(this.prev('dt').andSelf().wrapAll($(''));
});
$('dl:first').after($('dl:first').children());
$('dl:first').remove();

对页面进行客户端更改时,您没有拼接HTML标记。您正在操作从原始HTML标记创建的DOM。因此,您不需要插入HTML片段来分解元素。您可以创建新元素,将它们插入DOM,然后在其中插入现有元素。因此,在您的例子中,创建两个新的
dl
元素,将它们添加到现有的
dl
之后,然后将现有的
dt、dd
对重新定位到新的
dl
s。修改DOM和修改HTML是两件完全不同的事情
。之后
将修改DOM。如果您必须直接修改HTML(您不应该这样做),请使用
.HTML
。注意,如果使用jQuery 1.8或更高版本,则应使用
.addBack()
,而不是不推荐使用的
.andSelf()
$('dd').each(function(){
    $(this).prev('dt').andSelf().wrapAll($('<dl></dl>'));
});
$('dl:first').after($('dl:first').children());
$('dl:first').remove();