![](/img/trans.png)
[英]Customize Javascript array into plan text and populate into a textarea
[英]Populate an array from <textarea> in JavaScript
我将如何从<textarea>
输入中的文本填充数组?
我的最终目标是获取一个名称列表,然后将其插入到一个数组中以执行一些操作。 名称将由行分隔,如下所示:
bob
tim
sally
然后添加到数组中。 老实说,除了添加<textarea>
和创建一个空白数组外,我不知道从哪里开始。 我正在阅读其他帖子,但它们使用的是 jQuery 或我还不知道的其他语言。 我的理解是我必须以某种方式拆分内容?
这很简单:
var textarea = document.querySelector('textarea#names');
var textareaValue = textarea.value; // 'bob\ntim\nsally';
var arr = textareValue.split('\n');
split()获取字符串并将其切割成每个给定字符(或字符串)的数组。
\n
是换行符。
编辑:回答下面评论中提出的问题:
var names = [];
var textarea = document.querySelector('textarea#names');
function saveNames() {
names = textarea.value.split('\n');
}
textarea.addEventListener('blur', saveNames, false);
// or this:
// textarea.addEventListener('keyup', saveNames, false);
你使用事件。 您可以使用blur事件甚至keyup事件。 基本上你会监听(事件)发生的事情(比如 textarea 失去焦点或用户按下键盘按钮),然后做一些事情(读取 textarea 值并将名称保存到数组)。
这当然是纯js,但是如果你想使用jquery,那么你需要去jquery reference看看如何使用jquery的事件。
假设您有一个文本区域,并且在键入每个名称后按回车键。 这应该让你开始:
<textarea id="textToArray" style="width:300px; height:120px;"></textarea>
<button onclick="toArray()">To Array</button>
<div id="arrayOutput"><div/>
<script type="text/javascript">
function toArray( ) {
var textAreaElement = document.getElementById('textToArray');
var namesArray = textAreaElement.value.trim().split('\n');
console.log( namesArray );
document.getElementById('arrayOutput').innerText = JSON.stringify(namesArray);
}
</script>
如果你的话是 s 给你:
<textarea name="example" id="example" cols="30" rows="10">
bob
tim
sally
</textarea>
const textareaContent = document.getElementById('example').value.split('\n');
演示
试试这个:
<html>
<body>
<textarea id="textArea"></textarea>
<button onclick="textToArray()">to array</button>
<!--show array result-->
<p id="result"></p>
</body>
</html>
<script>
function textToArray() {
//assign value of textarea to mytext
var myText = document.getElementById("textArea").value;
//split mytext by nextline = "\n"
var myArray = myText.split("\n");
//to check the result
var result = '';
for(i=0;i<myArray.length;i++)
{
result += myArray[i]+"<br>";
}
document.getElementById("result").innerHTML = result;
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.