Javascript 如何将DOM对象拆分为2个

Javascript 如何将DOM对象拆分为2个,javascript,Javascript,我有一个dom:ABCDEFGHIK。现在我想把它分成ABCDEFGHIK。你们知道怎么做吗?我找到了一种可行的使用兰吉的方法。Rangy有一个强大的功能:提取内容从范围中提取内容。因此,解决方案如下: node(p).split( p.querySelector('em').firstChild, 2); // <p>012<em>abc</em>345</p> function node(node){ var _node = node

我有一个dom:ABCDEFGHIK。现在我想把它分成ABCDEFG

HIK

。你们知道怎么做吗?

我找到了一种可行的使用兰吉的方法。Rangy有一个强大的功能:提取内容从范围中提取内容。因此,解决方案如下:

node(p).split( p.querySelector('em').firstChild, 2); // <p>012<em>abc</em>345</p>

function node(node){
    var _node = node;
    return{
        split: split

    }
    function split(node, offset){
        var blockL = document.createElement(_node.nodeName),
            blockR = document.createElement(_node.nodeName);

        var rangeL = rangy.createRange();
        rangeL.setStart(_node.firstChild, 0);
        rangeL.setEnd(node, offset);

        var rangeR = rangy.createRange();
        rangeR.setStart(node, offset);
        rangeR.setEnd(_node.lastChild, rangy.dom.getNodeLength(_node.lastChild));

        var contentL = rangeL.extractContents(),
            contentR = rangeR.extractContents();

        while(contentL.firstChild) blockL.appendChild(contentL.firstChild);
        while(contentR.firstChild) blockR.appendChild(contentR.firstChild);

        _node.parentNode.insertBefore(blockL, _node);
        _node.parentNode.insertBefore(blockR, _node);

        _node.remove();

    }
}

定义分割字符串的条件。给定dom对象,我想将其分割为两段,但仍保留其格式。这就像是在一个段落中的一个段落中的新闻输入。是的,我知道了,但是如果你只想分裂,为什么不像ABB那样分裂ABC,我基本上是在一个段落的中间按下输入时试图模拟默认事件。