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

同样,我也处理了以下案件

  • 当粗体和斜体同时按下时(您需要存储 本例中的上一个元素)
  • 按enter键时(div为 我被创造了,并且制造了问题,所以我必须设置键 侦听器并使用document.execCommand不创建div 创建br)
  • 如果任何人有兴趣更新我的解决方案,使其有效,欢迎您

    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='&#8203;'
      range.insertNode(elem);