例如,这是我在第一个文本区域中的数组:
$names=array('Abcd','Efgh','Jklm');
现在这是我的脚本:
function myFunction() {
var stringArray = document.getElementById('edno').value.split('\n');
document.getElementById("dve").innerHTML = stringArray;
}
我的HTML:
<body>
<div id="first">
<textarea id="edno"></textarea>
<p>Click the button</p>
<button type="button" onclick="myFunction()"></button>
<p id="demo"></p>
</div>
<div id="second">
<textarea id="dve">
</textarea>
<script type="text/javascript">Here is my Script<script>
</div>
</body>
我想垂直打印由,
分割的值。
输入为abcd,efgh,jklm
时的期望结果示例:
{{3}}
答案 0 :(得分:0)
如果您只想将文本从第一个文本区域复制到第二个文本区域,则可以像这样:
function myFunction() {
var valueOfFirstTextarea = document.getElementById('edno').value;
document.getElementById("dve").innerHTML = valueOfFirstTextarea;
}
<div id="first">
<textarea id="edno"></textarea>
<p>Click the button</p>
<button type="button" onclick="myFunction()">Click Me</button>
</div>
<div id="second">
<textarea id="dve"></textarea>
</div>
答案 1 :(得分:0)
您可以获取该值,将其逐个字符分割,然后在要输入的元素中使用换行符\n
打印,或者在要使用另一种情况下使用<br>
打印元素。
下面的代码显示了这一点。
function myFunction() {
let stringArray = document.getElementById('edno').value.split("");
let txtResult = document.getElementById("dve");
txtResult.value = "";
for (var char of stringArray){
var character = char + "\n";
txtResult.value += character;
}
}
#dve{
height: 190px;
}
<div id="first">
<textarea id="edno"></textarea>
<button type="button" onclick="myFunction()">Click Me!</button>
<p id="demo"></p>
</div>
<div id="second">
<textarea id="dve"></textarea>
</div>
编辑
为了帮助您解决您的评论,这里提供了一种可能的解决方案:
这要困难得多,因为您需要以完全不同的方式遍历字符循环。
为避免行/列大小不同的问题,我需要获得最长的字长,正如您在名为biggerLength
的var的代码中所看到的那样
请查看代码,您对迭代有任何疑问,并在评论中发布。
function myFunction() {
let txtResult = document.getElementById("dve");
let str = document.getElementById('edno').value;
let strArray = [];
txtResult.value = "";
if (str.indexOf(",") > -1){
strArray = str.split(",");
let sortedStrArray = [...strArray].sort((a,b) => a.length < b.length);
//copy the original array to not mess with it, then sort bigger to smallest length
let biggerLength = sortedStrArray[0].length;
for (var i = 0; i < biggerLength; i++){
let columnStr = "";
for (var j = 0; j < strArray.length; j++){
let chars = strArray[j];
let char = chars[i];
if (char != null){
columnStr += char;
}else{
columnStr += " ";
}
}
txtResult.value += columnStr + "\n";
}
} else {
strArray = str.split("");
for (var char of strArray){
txtResult.value += char + "\n";
}
}
}
#dve{
height: 200px;
width: 230px;
}
<div id="first">
<textarea id="edno" >abcd,efgh,jklm</textarea>
<button type="button" onclick="myFunction()">Click Me!</button>
<p id="demo"></p>
</div>
<div id="second">
<textarea id="dve"></textarea>
</div>
答案 2 :(得分:0)
如果要垂直打印这些值,请按空格分割所有值,并用<br>
附加,然后将其附加到
elements = ['Abcd','Efgh','Jklm'];
document.getElementById("dve").innerHTML = elements.join('</br>')
这将在dev元素的innerHTML中垂直打印所有元素。