【问题标题】:Javascript posting values into multiple labels created in a for loopJavascript 将值发布到在 for 循环中创建的多个标签中
【发布时间】:2016-11-17 10:44:31
【问题描述】:

下面是我的代码;

<script>
function myFunction() {
    var number1 = document.getElementById("text").value;
    var number2 = document.getElementById("selector").value;
    var result = number1 / number2;
    var len = number2;
    for(var i = 0; i < len; i++)
    {
        var labelOutput = document.createElement("label");
        labelOutput.setAttribute("id", "label"+i);
        labelOutput.setAttribute("value", result);

        //Inserts after div tag
        //document.getElementById("results").insertAfter();
    }
}
</script>

我正在尝试获取它,因此一旦计算出结果,它将根据除以的长度/数量创建标签,例如,如果 100 / 2 = 50,它将创建两个具有相同的标签值(本例为 50)但 id 的 label1 和 label2 不同

【问题讨论】:

  • 有什么问题?
  • 一旦通过按钮/运行单击该功能,它就不会生成标签,我不确定之后是否需要 appendChild 标签或者我是否遗漏了什么
  • “请澄清您的具体问题或添加其他详细信息以准确突出您需要什么。正如目前所写的那样,很难准确说出您的要求。请参阅How to Ask 页面寻求帮助澄清这个问题。”
  • 看起来您正在创建标签,但是,是的,您没有将它们添加到文档的任何地方,所以......您不会在文档中看到它们。我仍然不明白这个问题,但如果您只是想将标签添加到文档中,那么请这样做:document.body.appendChild(labelOutput);
  • 您希望看到什么?您还没有创建任何可以显示任何内容的内容,因此如果您希望在页面中直观地看到某些内容,那么您不会。没有内容的标签不显示任何内容。做labelOutput.textContent = 'foo';,你可能会开始看到一些东西。

标签: javascript


【解决方案1】:

虽然您最初的问题不是很清楚,但您在评论中一针见血(重点是我的):

一旦通过按钮/运行单击该功能,它就不会生成标签,我不确定我是否需要在之后添加标签或者我是否遗漏了什么

当您创建元素时,JavaScript 不会自动将元素附加到页面,因此您必须自己执行。

编辑:正如 StackOverflow 用户 Aaronius 在对您的问题的评论中提到的那样,您可以为此使用 appendChild 函数。

【讨论】:

  • 我会尝试改写它,代码应该运行,所以一旦输入一个值并按除数选择它就会创建一个存储在结果变量中的结果。使用结果变量,它将为 for 循环提供一个长度,该循环将循环 x 次以获取 x 数量的带有值的标签。所以标签 1 和 2 会有 50 例如,因为我已经完成了 100 / 2 = 50 ,其中 2 是循环长度。希望这更有意义:S
  • 这没有多大意义,抱歉。也许您应该尝试编辑您的问题并使用您从 How To Ask 页面中学到的一些技巧。
【解决方案2】:
<script>
function myFunction() {
    var number1 = document.getElementById("text").value;
    var number2 = document.getElementById("selector").value;
    var result = number1 / number2;
    var len = number2;
    for(var i = 0; i < len; i++)
    {
        var labelOutput = document.createElement("label");
        labelOutput.innerHTML = result;
        labelOutput.setAttribute("name", i + ".");
        labelOutput.setAttribute("id","lbl_"+i +"\n");

        document.body.appendChild(labelOutput);
    }
}
</script>

这就是我所追求的,谢谢所有回答的人。

【讨论】:

    猜你喜欢
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 2013-09-20
    • 1970-01-01
    相关资源
    最近更新 更多