通过单击按钮将所选文本从一个内容div移动到另一个内容div

时间:2015-12-09 13:39:03

标签: javascript jquery html css

我想将所选文本从一个内容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>

2 个答案:

答案 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;