17a*_*chi 8 jquery bold contenteditable italic
我想使用粗体和斜体选项制作 contenteditable div,以使用相同的选项在 keyup 上的另一个 div 中显示内容。我设法显示文本,但不是选项。请帮忙
html:
<button onclick="document.execCommand('bold');">B</button>
<button onclick="document.execCommand('italic');">I</button>
<div id="textarea" contenteditable></div>
<div id="textarea-show"></div>
Run Code Online (Sandbox Code Playgroud)
查询:
$('#textarea').keyup(function() {
$('#textarea-show').html($(this).text());
});
Run Code Online (Sandbox Code Playgroud)
css:
#textarea { background-color: #fff;
border: 1px solid #ccc;
color: #555;
font-size: 14px;
height: 34px;
width: 450px;
}
#textarea-show{font-size: 2rem;
color:#666;
height:50px;
border: 1px solid #ccc;
width: 450px;
}
Run Code Online (Sandbox Code Playgroud)
您可以添加两个类,一个类bold,另一个类italic,对它们进行样式设置并通过单击按钮来激活/停用粗体/斜体(您可以运行下面的代码片段,或者您也可以在此处找到更新的 jsfiddle ):
更新
在OP发表评论之后,因为他只想将粗体和斜体添加到选定的文本中,所以我稍微更新了我的答案。
更新后的jsfiddle。
以及更新后的代码:
$('#textarea').keyup(function() {
$('#textarea-show').html($(this).text());
});
$('#bold_btn').on('click', function() {
//$('#textarea, #textarea-show').toggleClass('bold');
document.execCommand('bold');
var text = document.getElementById('textarea').innerHTML;
$('#textarea-show').html(text);
});
$('#italic_btn').on('click', function() {
//$('#textarea, #textarea-show').toggleClass('italic');
document.execCommand('italic');
var text = document.getElementById('textarea').innerHTML;
$('#textarea-show').html(text);
});Run Code Online (Sandbox Code Playgroud)
#textarea {
background-color: #fff;
border: 1px solid #ccc;
color: #555;
font-size: 14px;
height: 34px;
width: 450px;
}
#textarea-show {
font-size: 2rem;
color: #666;
height: 50px;
border: 1px solid #ccc;
width: 450px;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='bold_btn'>B</button>
<button id='italic_btn'>I</button>
<div id="textarea" contenteditable></div>
<div id="textarea-show"></div>Run Code Online (Sandbox Code Playgroud)