javascript - 从数组数组创建 html 元素的简写方法

标签 javascript jquery html arrays

<分区>

有没有办法让它变得更短?我有一个包含 15 个问题的 list ,需要它们保持有序。在回答每个问题后,它会转到 nextQuestion 函数。我想保持原样。我试过做一个 for 循环,但它总是让问题变得乱七八糟。另外,我对此很陌生。任何帮助将不胜感激!

function questionContent() {    
    $("#gameShow").append("<p><strong>" + 
        questions[questionTracker].question + 
        "</p><p class='choices'>" + 
        questions[questionTracker].choices[0] + 
        "</p><p class='choices'>" + 
        questions[questionTracker].choices[1] + 
        "</p><p class='choices'>" + 
        questions[questionTracker].choices[2] + 
        "</p><p class='choices'>" + 
        questions[questionTracker].choices[3] + 
        "</strong></p>");
}

最佳答案

我不清楚你的问题数组是如何组合在一起的,但你的函数看起来像是要接受一个问题并为该问题创建 html 以及一系列答案选择。

为了简化问题中的功能,您可以处理第一个 question 属性,然后遍历 choices 数组以添加您要查找的其余 html附加。类似于下面的示例(省略了您的 strong 标签,因为它们看起来很奇怪,我不确定您真正想要它们的位置)。

您可以遍历主要问题数组并调用此函数(或只创建一个函数来完成所有操作),但如果示例中没有更多代码或数据,则很难准确说明您应该如何处理它。

function questionContent(questions) {
  let question = `<p>${questions[questionTracker].question}</p>`;
  for (const choice of questions[questionTracker].choices) {
    question += `<p class="choices">${choice}</p>`;
  }

  $("#gameShow").append(question);
}

关于javascript - 从数组数组创建 html 元素的简写方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52546895/

相关文章:

html - 更改 Bootstrap 元素的宽度

php - div 和类未显示

html - <br/> vs <div/> 清理

asp.net - 如何引用匿名 JavaScript 函数?

javascript - 使用具有相同 ID 的多个文本字段的 Jquery 函数

javascript - Next.js:模块构建失败:错误:无法从 'react-hot-loader/babel' 中找到模块 '/home/ugurkaya/Desktop'

JQuery Sortable 以编程方式将项目设置为索引

jquery - 在 jQuery 自动完成源中将元素的 id 作为 url 参数发送

JavaScript 和隐藏 div 不起作用

javascript - 通过 Apple Automator 运行 Javascript 排序