javascript - 根据用户输入选择 JavaScript 变量和数组元素

标签 javascript html css arrays user-input

我想根据用户输入从数组中选择一个元素。下面是我如何尝试执行此操作的示例。用户将输入 1,2 或 3(在本例中)。然后,根据此输入的结果,将选择 a 变量之一。然后,将选择该变量/数组中的随机元素显示在段落标记中。

// user input must be 1,2 or 3 (in this example)
<input type="number" id="userInput">
<script>
    var ageNum = [0,1,2];
    var a1 = ["string1.1","string2.1","string3.1"];
    var a2 = ["string1.2","string2.2","string3.2"];
    var a3 = ["string1.3","string2.3","string3.3"];
    var selectedA = ["a"+userInput.toString()];
    var rdnNum = ageNum[Math.floor(Math.random()*ageNum.length)];
    document.getElementById("display_string").innerHTML = selectedA[rdnNum];
</script>

<p id="display_string">...</p>

这只是我尝试过的一个例子(失败了),但我愿意接受任何解决问题的新方法。

最佳答案

您应该处理二维数组以轻松获取相应的消息。 DOM 元素是基于事件的。因此,您应该使用事件监听器。

var msgs = [
["string1.1","string2.1","string3.1"], // a1
["string1.2","string2.2","string3.2"], // a2
["string1.3","string2.3","string3.3"]  // a3
];

document.getElementById('userInput').addEventListener('change', function (e) {
  var selectedArray = msgs[parseInt(e.target.value)];
  var randomIdx = parseInt(Math.random() * selectedArray.length);
    var randomMessage = selectedArray[randomIdx]
    document.getElementById("display_string").innerHTML = randomMessage
});

Check this fiddle to see my approach

关于javascript - 根据用户输入选择 JavaScript 变量和数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45906550/

相关文章:

javascript - 循环是一个不错的选择而不是我创建的吗?

html - 在网站中包含菜单的良好做法?

html - ubuntu 不在 html 中显示图像

javascript - 提交点击后输入框立即消失

javascript - 通过 javascript 关闭除当前选项卡之外的所有浏览器选项卡

javascript - C dll 将图像数据发送到 XUL 应用程序。 Canvas

JavaScript 不改变 ClassName

HTML :"OnMouseOver"实现

html - 如何在不创建 slider 并继续此页面的情况下将图像拉伸(stretch)到整页高度?

html - 网页设计/CSS : Animated logo with CSS?