2017-03-02 53 views
0

我想用html()方法实现退格功能,因为它重置了我的情况中不允许的元素的范围对象。如何从范围对象获取当前节点引用

不幸的是,当我有多个节点时,它不能正常工作。有什么方法可以从范围对象中获取当前节点引用?

这是我试过的代码。

<div id="myDiv" style="color:red" contenteditable="true">The color of this text is red.<br>yellow</div> 
     <br /><br /> 
     <button id='two'>Backspace</button> 

//javascript 

$('#two').click(function() 
{ 
    var div = document.getElementById ("myDiv"); 
    var doc = div.ownerDocument || div.document; 
    var win = doc.defaultView || doc.parentWindow; 
    var sel = win.getSelection(); 
    var range = sel.getRangeAt(0); 
    if (document.createRange) 
    {  // all browsers, except IE before version 9 
    var textNode = div.firstChild;  // the text node inside the div 
    if (textNode.data.length > 1) 
    { 
     var rangeObj = document.createRange(); 
     if(range.startOffset> 0) 
     { 
     // aligns the range to the second character 
     rangeObj.setStart (textNode, range.startOffset-1); 
     rangeObj.setEnd (textNode, range.startOffset); 
     } 

     rangeObj.deleteContents(); 
    } 
    } 

}); 

回答

0
rangeObj.setStart (textNode, range.startOffset-1); 
     rangeObj.setEnd (textNode, range.startOffset); 

添加以下,而不是以上线路固定我的问题。

rangeObj.setStart (range.startContainer, range.startOffset-1); 
    rangeObj.setEnd (range.startContainer, range.startOffset); 
相关问题