Javascript ert新元素 “span”(我用span表示普通文本)
同样,我也处理了以下案件Javascript ert新元素 “span”(我用span表示普通文本),javascript,html,css,Javascript,Html,Css,同样,我也处理了以下案件 当粗体和斜体同时按下时(您需要存储 本例中的上一个元素) 按enter键时(div为 我被创造了,并且制造了问题,所以我必须设置键 侦听器并使用document.execCommand不创建div 创建br) 如果任何人有兴趣更新我的解决方案,使其有效,欢迎您 var boldButton=document.querySelector('#boldBtn'), italicButton=document.querySelector('#italicBtn'), con
var boldButton=document.querySelector('#boldBtn'),
italicButton=document.querySelector('#italicBtn'),
contentDiv=document.querySelector(“#content”),
粗体=假,斜体=假,范围,前置元素,选择;
;
contentDiv.addEventListener('keydown',函数(e){
如果(如keyCode===13){
window.document.execCommand('insertLineBreak',false,null);
range=window.getSelection().getRangeAt(0);
range.collapse();
prevElement=未定义;
如果(粗体)添加元素(“强”);
如果(斜体)添加元素(“i”);
e、 预防默认值();
返回false;
}
返回true;
});
boldButton.addEventListener('单击',函数()){
调试器
粗体=!粗体;
boldButton.classList.toggle('border-black');
如果(!粗体)
禁用('bold');
其他的
附加元素(“强”);
});
italicButton.addEventListener('click',function(){
调试器;
斜体=!斜体;
italicButton.classList.toggle('border-black');
如果(!斜体)
禁用(“斜体”);
其他的
增编(‘i’);
});
函数加法器(元素){
如果(!selection)selection=window.getSelection()
范围=选择。getRangeAt(0);
设elem=document.createElement(element);
元素innerHTML=';'
如果(前置元素)
范围。选择节点内容(prevElement);
range.collapse();
range.insertNode(elem);
元素焦点();
元素=元素;
}
功能禁用(elem){
如果(斜体和粗体)返回;
setRangeAtEnd();
让element=document.createElement('span');
如果(斜体)
element=document.createElement('i');
else if(粗体)
element=document.createElement('strong');
element.innerHTML=';'
range.insertNode(元素);
范围。设置开始(元素,1);
元素focus();
}
函数setRangeAtEnd(){
让childNodes=contentDiv.childNodes;
range=document.createRange();
range.setStartAfter(childNodes[childNodes.length-1]);
prevElement=未定义;
如果(!selection)selection=window.getSelection();
selection.removeAllRanges();
选择。添加范围(范围);
}
#内容{
边框:1px纯黑;
高度:150像素;
}
.黑色边框{
边框:2个点黑色;
}
大胆的
Italic
div.bold-selected{font-weight:bold;}为什么不使用css处理这类div.bold-selected{font-weight:bold;}
是的,我自己用一个可编辑的span解决了我的问题,但我接受你的答案!是的,我用contenteditable的span解决了我的问题,但我会接受你的答案!
<script>
$(document).ready(function () {
$("#boldBtn").click( function() {
$("your input id or class").keyup(function () {
$("your input id or class").css("fontWeight", "bold");
});
});
});
</script>
let range=window.getSelection.getRangeAt(0);
let elem=document.createElement('strong');
elem.innerHTML='​'
range.insertNode(elem);