如何使用JavaScript或jQuery将一些文本插入文本区域?

时间:2019-06-21 21:12:41

标签: javascript jquery events textarea

我有两个文本区域-一个用于在其中粘贴一些文本,另一个用于双击第一个文本区域中的单词。我该如何实现?

在以下情况下,我已经取得了一些成果: 1.将一些文本粘贴到文本区域 2.双击文本区域中的单词 3.查看此单词在带有ul的div中的显示方式。这个词加为li。 请参阅案例代码:

//html block
<textarea name="" id="text" cols="30" rows="10" ondblclick="copyPaste()" >Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur minus iure suscipit quam expedita? Sed minus laboriosam natus quaerat autem enim accusantium, architecto officiis aliquam pariatur. Adipisci provident tenetur velit!</textarea>
    <div id="wordList" class="wordListclass">
        <ul id="myList">
            <li></li>
        </ul>
    </div>
</body>

//js block for copy-pasting words after doubleclick on the text from the texarea with id ='text'
"use strict";

function copyPaste(){
    var selection = window.getSelection();
    console.log(selection.toString());
    var node = document.createElement("LI");               
var selectionWithButton =  selection;
var textnode = document.createTextNode(selectionWithButton);      
node.appendChild(textnode);                             
document.getElementById("myList").appendChild(node);   
}

现在我需要删除并添加第二个textarea。我想看看双击第​​一个文本区域中的文本后的单词如何出现在第二个文本区域中。重要说明-它们应具有以下结构:

word1
word2
word3

没有html标记,因为在第二个textarea中看到这些单词的列表后,我想将它们插入数据库中,因此html标记(如我提供的代码中)将是不可取的。 不幸的是,用textarea代替div元素是行不通的。 感谢大家的阅读和帮助!

2 个答案:

答案 0 :(得分:0)

Parsed ... inventory source

像这样吗?

答案 1 :(得分:0)

如果我理解正确,您只想将所选单词粘贴到第二个文本区域而不是列表中。

为此,您只需使用文本区域的属性value附加文本即可。

为了使文本出现在不同的行中,可以使用\n,它是插入新行的字符。您可以找到有关转义序列的更多信息here

您的函数可能如下所示:

function copyPaste(){
    // trim() is used here to remove the whitespace at the end of the word when you dblClick on a word
    const selection = window.getSelection().toString().trim();
    const textarea2 = document.getElementById("pasteTextarea");
    if(!textarea2.value) {
        // Don't add a new line when the textarea is empty
    	textarea2.value = selection;
    }
		else {
    	textarea2.value += `\n${selection}`;    
    }
}
<textarea name="" id="text" cols="30" rows="10" ondblclick="copyPaste()" >Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur minus iure suscipit quam expedita? Sed minus laboriosam natus quaerat autem enim accusantium, architecto officiis aliquam pariatur. Adipisci provident tenetur velit!</textarea>

<textarea name="" id="pasteTextarea" cols="30" rows="10"></textarea>