2017-03-02 54 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); 
相關問題