Javascript for循环不起作用

Javascript for循环不起作用,javascript,loops,for-loop,Javascript,Loops,For Loop,有人能解释一下为什么这个循环不起作用吗?(它应该写入所有选中的复选框,但只写入最后一个选中的复选框) 函数Matula() { var x=document.getElementsByTagName(“正文”)[0]; var y=document.createElement(“p”); var g=document.createTextNode(“Vasa pizza bude obsahovat:”); y、 儿童(g); x、 儿童(y); var swag=document.forms[

有人能解释一下为什么这个循环不起作用吗?(它应该写入所有选中的复选框,但只写入最后一个选中的复选框)

函数Matula()
{
var x=document.getElementsByTagName(“正文”)[0];
var y=document.createElement(“p”);
var g=document.createTextNode(“Vasa pizza bude obsahovat:”);
y、 儿童(g);
x、 儿童(y);
var swag=document.forms[“lol”].matej.length;
对于(变量i=0;i

退出函数,因此
for
只循环一次,将其置于
for
循环的外部我不知道该做什么,因为这会让所有这些变量名称非常混乱。但是你在if中的返回,在for循环中的返回,似乎不正确


您应该将其放在函数的最后一行。

if块中有一个return语句。这将在循环第一次进入if后基本上中断循环。这意味着只打印一个复选框的值。

更干净的代码可能如下所示:

function Matula() {
    var body = document.body;
    addParagraph(body, "Vasa pizza bude obsahovat:");

    var allToppings = document.forms["lol"].matej;
    var toppingsCount = allToppings.length;
    for (var i = 0; i < toppingsCount; i++) {
        if (allToppings[i].checked) {
            addParagraph(body,allToppings[i].value);
        }
    }
}

function addParagraph(body, textToAdd) {
    var p = document.createElement("p");
    p.appendChild(textToAdd);
    body.appendChild(y);
}
函数Matula(){
var body=document.body;
添加段落(正文,“Vasa pizza bude obsahovat:”);
var allToppings=document.forms[“lol”].matej;
var toppingsCount=所有Toppings.length;
对于(变量i=0;i
从我头上打下来的,可能会有打字错误

让它更容易阅读。顺便说一句,括号的位置确实会有所不同(它不是Java),所以请保持在同一行(谷歌搜索原因)它对你有用吗?

在6个问题之后,是时候学习如何格式化代码了。选择您的代码->ctrl+k@PeeHaa我不知道键盘快捷键,很好!而且,这些变量名很糟糕。我不知道这应该做什么。当您输出
document.forms[“lol”].matej.length
时,它是否显示任何值?您在if中返回,它在for循环中。这似乎不对。始终尝试将返回值放在函数的最后一行,这样可以防止出现许多错误。好吧,那么你是在告诉我你否决了其他两个答案,因为它们不是你的?为什么要这样回答我最初的评论,比如我为什么被否决?你被否决了,你很生气。你投了赞成票,所以你(很高兴)我很抱歉,但它清楚地表明,回报声明不应该在那里,如果你读了答案上的评论,你会注意到这就是问题所在。除了回答之外,我还评论了他的代码,而不是他问问题的方式。
return mocny = 0
function Matula() {
    var body = document.body;
    addParagraph(body, "Vasa pizza bude obsahovat:");

    var allToppings = document.forms["lol"].matej;
    var toppingsCount = allToppings.length;
    for (var i = 0; i < toppingsCount; i++) {
        if (allToppings[i].checked) {
            addParagraph(body,allToppings[i].value);
        }
    }
}

function addParagraph(body, textToAdd) {
    var p = document.createElement("p");
    p.appendChild(textToAdd);
    body.appendChild(y);
}