for循环不起作用

时间:2014-05-07 17:24:40

标签: javascript loops for-loop

有人可以解释为什么for...loop不起作用吗? (它应该写出所有选中的复选框,但它只写入最后选中的复选框)

function Matula() 
{
    var x = document.getElementsByTagName("body")[0];
    var y = document.createElement("p");
    var g = document.createTextNode("Vasa pizza bude obsahovat:");
    y.appendChild(g);
    x.appendChild(y);
    var swag = document.forms["lol"].matej.length;
    for (var i = 0; i < swag; i++) 
    {
        if (document.forms["lol"].matej[i].checked) 
        {
            var torko = document.getElementsByTagName("body")[0];
            var q = document.createElement("p");
            var w = document.createTextNode(document.forms["lol"].matej[i].value);
            q.appendChild(w);

            torko.appendChild(q);
            return mocny = 0
        }
    };
}

4 个答案:

答案 0 :(得分:3)

return mocny = 0

退出该函数,因此for仅循环一次,将其置于for循环

之外

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我不知道应该做什么,因为所有这些var名称都令人困惑。但是你在if中的回归,在你的for循环中,看起来并不合适。

你应该把它放在你功能的最后一行。

答案 3 :(得分: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);
}

键入我的头,可能包含错别字
使它更容易阅读。顺便说一句。支架位置确实有所不同(它不是Java),所以保持它在同一条线上(谷歌的原因)它对你有用吗?