0

我正在用 JavaScript 编写一个小型编辑器。我要问的是,当我单击“粗体”按钮时,我会像这样添加它:

function addBold() {
    var el = selection().anchorNode.parentNode; 
    var str = el.innerHTML; 
    var offset = selection().getRangeAt(0).endOffset;
    var start = str.substr(0,offset);
    var end = str.substr(offset, str.length);
    el.innerHTML = start + '<b>&#32;</b>' + end;
    placeCaretAtNode(el.children[0]);
}

我需要使用添加粗体元素appendChild来保存元素,而不是:

el.innerHTML = start + 'HERE I NEED TO GET THIS ELEMENT' + end;

谢谢。

4

2 回答 2

1

这是一个代码。告诉我这是否有效

     <!DOCTYPE html>
<html>
<head>
    <script>

function  bgchange() {
try{
var child = document.createElement("b");
child.innerHTML = "Test";
document.getElementById("dvPercentage").innerHTML = document.getElementById("dvPercentage").innerHTML + "Test"
 document.getElementById("dvPercentage").appendChild(child);
 document.getElementById("dvPercentage").innerHTML = document.getElementById("dvPercentage").innerHTML + "Test"
 }catch(e){
 alert(e);
 }
};
    </script>
<head>
<body onload="bgchange()" style="background-color:red">
      <div id="dvPercentage" style="height: 80%">
</body>
</html>

所以不做el.innerHTML = start + '<b>&#32;</b>' + end;

你可以去el.appendChild(child)

请让我知道它是否有效

于 2013-09-15T12:49:10.150 回答
0

如果要切换粗体功能,可以执行以下代码:

document.execCommand('bold');

但是,如果您喜欢自己的方法,请尝试以下操作:

var bold;

while(el.firstChild) {  // empty the el element
    el.removeChild(el.firstChild);
}

el.appendChild(document.createTextNode(start));

bold = document.createElement('b');
bold.appendchild(document.createTextNode('bold string'));
el.appendChild(bold);

el.appendChild(document.createTextNode(end));
于 2013-09-15T12:42:52.163 回答