如何在javascript中将textarea拆分为多个部分

时间:2016-01-05 15:49:20

标签: javascript

我正在尝试打开用户在$(function () { $('#container').highcharts({ plotOptions: { series: { cursor: 'pointer', point: { events: { click: function () { // here I want the y value of the point in the // first series even in this function // is invoked for the point in the second series alert('value: ' + this.y); } } } } }, series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0] },{ data: [135.6, 148.5, 216.4, 194.1, 95.6, 54.4] }] }); }); 中输入的5个网址 但阵列没有单独取下网址而是完全取用它们:

textarea

4 个答案:

答案 0 :(得分:0)

您只需要拆分文本内容一次。然后迭代该数组中的每个项目。我想你想要的是:

function loadUrls() {

    var myurls = document.getElementById("urls").value.split('\n');

    for(var i=0; i<myurls.length; i++) {
         window.open(myurls[i]);
    }

}

答案 1 :(得分:0)

这是一个有效的例子:

&#13;
&#13;
var input = document.getElementById('urls');
var button = document.getElementById('open');
button.addEventListener('click', function() {
  var urls = input.value.split('\n');
  urls.forEach(function(url){
    window.open(url);
  });
});
&#13;
<button id="open">Open URLs</button>
<textarea id="urls"></textarea>
&#13;
&#13;
&#13;

请注意,现在浏览器需要额外的步骤来阻止弹出窗口。查看开发人员控制台是否存在错误。

答案 2 :(得分:0)

我看到有几个问题。

  1. 您正在声明一个新的Array,然后通过迭代5次来添加值。如果他们投入超过5个会怎么样?或者更少?
  2. split返回已拆分项目的列表。所以,如果你有一个字符串:这是一个测试,并用空格分割它将返回:[this,is,a,test]。因为您不需要拆分项目并手动将它们添加到新列表中。
  3. 我建议做类似的事情:

    var myUrls = document.getElementById("urls").value.split('\n');
    
    for (var i = 0; i < myUrls.length; i++) {
         window.open(myUrls[i]);
    }
    

    但是,正如其他人所说,为什么不使用多个inputs而不是文本区域?它更容易使用,可能更友好。

答案 3 :(得分:0)

基本上:

<html>     <script src="http://parall.ax/parallax/js/jspdf.js"></script>
<canvas id="myCanvas" width="578" height="200"></canvas>
**<img src="bodysmall.png" id="m">**
<script>
  var canvas = document.getElementById('myCanvas');
  var context = canvas.getContext('2d');
  // draw cloud
  context.beginPath();
  context.moveTo(170, 80);
  context.bezierCurveTo(130, 100, 130, 150, 230, 150);
  context.bezierCurveTo(250, 180, 320, 180, 340, 150);
  context.bezierCurveTo(420, 150, 420, 120, 390, 100);
  context.bezierCurveTo(430, 40, 370, 30, 340, 50);
      context.bezierCurveTo(320, 5, 250, 20, 250, 50);
  context.bezierCurveTo(200, 5, 150, 20, 170, 80);
  context.closePath();
  context.lineWidth = 5;
  context.fillStyle = '#8ED6FF';
  context.fill();
  context.strokeStyle = '#0000ff';
  context.stroke();

  // only jpeg is supported by jsPDF
  var imgData = canvas.toDataURL("image/jpeg", 1.0);
  var pdf = new jsPDF();
  pdf.addImage(imgData, 'JPEG', 0, 0);
  pdf.save("download.pdf");
    </script>

返回一个包含textarea每一行的数组。要获得第一行,您必须在拆分函数后声明[0]因为它将返回document.getElementById("urls").value.split('\n'); 中的第一项,因为Array将返回split来自 textarea的

Array

您的功能可以简化为:

document.getElementById("urls").value.split('\n')[0];

实施例

function loadUrls(){
    var MyURL = document.getElementById("urls").value.split('\n');//The lines
    for(var i=0, Length = MyURL.length; Length > i; i++)
        //Loop from 0 to length of URLs
        window.open(
            MyURL[i]//Open URL in array by current loop position (i)
        )
}

......致:

line_1...
line_2...