如何从数组中的 textarea HTML 标记中获取数据,然后循环遍历它?

Posted

技术标签:

【中文标题】如何从数组中的 textarea HTML 标记中获取数据,然后循环遍历它?【英文标题】:How to get data from textarea HTML tag in an array and then loop through it? 【发布时间】:2020-03-27 08:23:15 【问题描述】:

我正在创建一个网页,该网页将从用户那里收集链接,然后只需在新标签页中打开每个链接。为了收集链接,我使用 html<textarea> 标记和提交按钮。

用户应该为每一行只提供一个链接

https://google.com
https://***.com
https://facebook.com

我会通过这个函数发送每个传递每个 URL 的链接来打开链接。

function open(url) 
  var open= window.open(url, '_blank');
  open.focus();

但是究竟如何运行循环呢?如何从数组中的textarea 获取值,然后运行一个循环,将每个索引处的值发送到该函数?

如果您认为这可以做得比这更好,请随意添加您的方法。

【问题讨论】:

欢迎来到 ***!请确保添加最小可验证代码 sn-p 以供其他人查看并了解您的问题。有关如何创建minimal reproducible example的更多详细信息 我已经在JS代码中添加了该功能。 JS 代码中唯一的就是这个函数和循环。循环是我不知道该怎么做的。所以只加了这个。 并非所有评分最高的答案都是好的:***.com/a/11384018/661872 第二个使用_blank 的参数实际上是窗口的name,与目标道具无关。 window.open(url, url); 会起作用,但你不会想全部关注它们 感谢您指出这一点,但我很好奇您是如何发现我是从 SO 上评分最高的答案(快速谷歌搜索)中了解到此功能的? 这能回答你的问题吗? How to read line by line of a text area HTML tag 【参考方案1】:

如果你给你的 textarea 一个唯一的标识符会很有帮助,这样我们就可以很容易地得到它的内容。即<textarea id="linksInput">...</textarea>

那我们就可以了

let links = document.getElementById("linksInput").value.split("\n");

我们获取 textarea 中的值并将其拆分为每个换行符(“\n”),将我们的各个链接放在一个数组中,每个元素都是原始 textarea 值的一行。现在我们可以遍历数组links

for (let i = 0; i < links.length; i++) 
    open(links[i]);


【讨论】:

【参考方案2】:

您可以使用以下代码获取结果。

HTML

<textarea id='links'>
</textarea>

<button id='trigger'> Get value </button>

JS

document.addEventListener('DOMContentLoaded', () =>

const ta = document.getElementById('links')
const button = document.getElementById('trigger')

button.addEventListener('click', () => 
 const list = ta.value.split('\n')
 forEach(let i=0; i < list.length; i++) 
   window.open(list[0], "_blank");
  
)
)

【讨论】:

【参考方案3】:

您可以在文本字段中添加一个 id 并使用 javascript 来获取 TextArea 的值。

由于您正在查看由"/n" 分隔的多个值,因此您必须拆分文本并循环遍历结果。

function submitText() 
  var textVal = document.getElementById("txtarea").value;

  textVal = textVal.split('\n');

  if (textVal.length > 0) 
    for (const element of textVal) 
      console.log(element);
      window.open(element, "_blank");
    

  
<textarea id="txtarea"></textarea>

<button type="button" onclick="submitText()">Submit</button>

【讨论】:

以上是关于如何从数组中的 textarea HTML 标记中获取数据,然后循环遍历它?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用javascript替换textarea元素中的文本? [复制]

HTML 在 textarea 中保存文本

如何从 textarea 中的 @foreach 循环呈现 html

如何正确处理 textarea 中的 html 标签

从 PHP 将 textarea 元素插入 MySQL

更改文本区域 jquery 内的 html 标记之间的文本