2015-12-09 2 views
0

Я хотел бы переместить выделенный текст из одного div div в другой контент div. И выделенный текст должен быть добавлен в текущую позицию каретки другого div. Есть ли способ получить позицию по уходу на основе div id? Во всех источниках я наблюдал, что полученная позиция каретки всегда основана на выборе.Перемещение выделенного текста из одного содержимого в другой контент div, нажав кнопку

<body > 
<div contenteditable="false" id='selectfromhere' > 
    some text select 
    </div> 
    <div contenteditable="true" id='movehere' > 
    some 
    </div> 
    <button>Click me</button> 
</body> 

ответ

0

Вот решение для получения позиции курсора на содержание редактируемых: Get caret position in contentEditable div

Если вы используете эту функцию, чтобы получить целое значение для позиции курсора (вар caretPosition), следующий должен вставить ваш текст:

var insertText = $("#selectfromhere").html(); 
var currentText = $("#movehere").html(); 
var output = [currentText.slice(0, caretPosition), insertText, currentText.slice(caretPosition)].join(''); 

$("#movehere").html() = output; 
+0

Получить каретку позиции в contentEditable Дивой ссылки возвращаются каретка положения selectfromhere дел. Не могли бы вы сообщить мне, как получить позицию каретки divhere div, чтобы я мог перемещать текст в эту позицию каретки из selectfromhere div – seetha

+0

Внутри этой функции .... "var update = function() { $ ('#caretposition') .html (getCaretPosition (this)); }; $ ('# contentbox'). on ("mousedown mouseup keydown keyup", обновление); «Вы не забыли заменить #contentbox на # movehere, а не #selectfromhere –

2

Попробуйте это:

var selectedText = ''; 
 

 
$(document).ready(function() { 
 
    $('#selectfromhere').mouseup(function() { 
 
    selectedText = window.getSelection().toString(); 
 
    console.log(selectedText); 
 
    }); 
 

 
    $('button').click(function() { 
 
    $('#selectfromhere').html($('#selectfromhere').html().split(selectedText).join("")); 
 
    $('#movehere').append(selectedText); 
 
\t \t window.getSelection().removeAllRanges(); 
 
    selectedText = ''; 
 
    console.log('Some Text ' + selectedText); 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
    <div contenteditable="false" id='selectfromhere'> 
 
    some text select 
 
    </div> 
 
    <div contenteditable="true" id='movehere'> 
 
    
 
    </div> 
 
    <button type="button">Click me</button> 
 
</body>

Надеется, что ответил вам вопрос /Zorken17

+0

Я отредактировал код, поэтому теперь вы можете выбрать несколько раз, чтобы скопировать текст из первого элемента. Если это ответили на ваш вопрос, отметьте его как один. – Zorken17

Смежные вопросы