2015-12-09 100 views
0

我想將所選文本從一個內容div移動到另一個內容div。所選文本應附加在另一個div的當前插入位置。有沒有辦法根據div id獲得護理職位?我在所有來源中觀察到,獲得的脫字符位置總是基於選擇。通過單擊按鈕將選定的文本從一個內容div移動到另一個內容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

如果您使用該功能來獲取插入符位置(VAR 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格的插入位置。你可以讓我知道,如何獲得movehere div的插入位置,以便我可以將文本從選擇區域移動到插入位置 – seetha

+0

在此函數內......「var update = function(){ $( '(#)「)。html(getCaretPosition(this)); }; $('#contentbox')。on(」mousedown mouseup keydown keyup「,update); 」您是否確定將#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

相關問題