如何划分索引并使用 onclick 事件将其打印在 JavaScript 和 HTML 的新行上

Posted

技术标签:

【中文标题】如何划分索引并使用 onclick 事件将其打印在 JavaScript 和 HTML 的新行上【英文标题】:How do I section out an Index and have it print on a new line in JavaScript and HTML with an onclick event 【发布时间】:2018-05-18 02:11:12 【问题描述】:

我有一个看起来像这样的索引

var quotes = ["string 1",
  "string 2",
  "string 3",
  "string 4",
  "string 5",
  "string 6",
  "string 7",
  "string 8",
  "string 9",
  "string 10", //this pattern continues for a while
];

我正在尝试将我的数组分割成更小的块,但我不想每次都创建一个新数组。我正在使用以下代码来做到这一点:

function openingText() 
  var opening = quotes.slice(0, 7);
  for (var x in opening) 
    opening[x] = '>' + opening[x];
    document.getElementById("text").innerhtml = opening[x];
  

我已将此函数分配给我的 HTML 文件中的 onclick 事件。 当我运行代码string 7 时打印,但没有别的。

如何使用onclick 使其从 0 开始打印并遍历每个字符串到 7?

【问题讨论】:

1.我不建议您将 for-in 用于数组; 2. 你的代码没有右括号(可能它只是代码的一部分)。因此,如果打印部分代码超出了for 正文,它将以x 的最后一个值执行。此外,document.getElementById("text").innerHTML = opening[x]; 您不是在添加,而是在重写元素的内容。 document.getElementById("text").innerHTML = opening[x]; 你不是在添加而是覆盖当前值= !== += javascript innerHTML adding instead of replacing的可能重复 有道理,我明白你在说什么。我会改变一些东西,看看它是否有效。谢谢! 【参考方案1】:

在您的 for-loop 中,您将覆盖 innerHTML 七次。你有:

document.getElementById("text").innerHTML = opening[x];

你想要: document.getElementById("text").innerHTML += opening[x];

这样,您将追加到先前的值而不是覆盖它。

【讨论】:

谢谢!我至少明白我做错了什么以及为什么做错了,这真的很有帮助。

以上是关于如何划分索引并使用 onclick 事件将其打印在 JavaScript 和 HTML 的新行上的主要内容,如果未能解决你的问题,请参考以下文章

jQuery:如何在事件处理函数中获取事件对象而不将其作为参数传递?

Material UI List onClick 在嵌套列表上触发点击事件

闭包的单击事件实例以及解决方法

如何从索引中以字符串形式获取突出显示数据或如何将其打印出来?

js 如何 动态建立onclick事件并附动态值

如何将参数传递给过滤器方法并使用不同的参数在 React onClick 事件中调用函数?