2

所以我有这个场景

<div id="editor" contenteditable="true">
    <div id="list">Hello</div>
</div>

我想打电话

var html = $('<div id="replaced" contenteditable="false">Hello</div>');
$('#list').replaceWith(html);

问题是我希望输出是这样的:

<div id="editor" contenteditable="true">
    <div id="replaced" contenteditable="false">Hello</div><br />
</div>

我尝试了以下方法,但没有成功:(这是替换 tmp.mention 的 div)

$('#'+tmp.mention).replaceWith(this).parent().after('<br />');

我想这样做是因为替换 tmp.mention 的 div 在将 contenteditable 设置为 true 的 div 编辑器中将 contenteditable 设置为 false。如果没有
,用户将无法在 div 之后键入...

4

2 回答 2

0

试试这个:

$('#'+tmp.mention).replaceWith($(this).parent()).after('<br />');

我想你需要

var html = $('<div id="replaced" contenteditable=false>Hello</div>');
$('#list').replaceWith(html);

演示

但如果你想整体#editor那么

var html = $('<div id="replaced" contenteditable=false>Hello</div>');
$('#list').parent().replaceWith(html);

演示

根据编辑

如果你想要像这样的输出

<div id="editor" contenteditable="true">
    <div id="replaced" contenteditable="false">Hello</div><br />
</div

然后尝试

var html = $('<div id="replaced" contenteditable=false>Hello</div>');
$('#list').replaceWith(html).after('</br>');
于 2012-06-11T04:57:11.250 回答
0

试试这个:

$('#list').replaceWith('<div id="replaced" contenteditable="false">Hello</div><br />')
于 2012-06-11T05:05:11.920 回答