我想将所选文本从一个内容div移动到另一个内容div。并且所选文本应附加在另一个div的当前插入位置。有没有办法根据div id获得护理位置?我在所有来源中观察到,获得的插入位置总是基于选择。
<body >
<div contenteditable="false" id='selectfromhere' >
some text select
</div>
<div contenteditable="true" id='movehere' >
some
</div>
<button>Click me</button>
</body>
答案 0 :(得分: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);
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
答案 1 :(得分:0)
以下是获取内容可编辑的插入位置的解决方案: Get caret position in contentEditable div
如果使用该函数获取插入符号位置的整数值(var caretPosition),则应插入以下内容:
var insertText = $("#selectfromhere").html();
var currentText = $("#movehere").html();
var output = [currentText.slice(0, caretPosition), insertText, currentText.slice(caretPosition)].join('');
$("#movehere").html() = output;