嵌套for语句中使用的变量

时间:2012-11-13 07:52:45

标签: javascript jquery

function abc()
{
    var str = "";  //  -------------------(4) 
    for (var i = 0; i < 100 ; i++)
    {
        str = "<tr><td>"; // ------------------(1)
            for(var m = 1 ; m <= cnt_chapter ; m++)
        {
            str = str + "<span>" + m +"</span> "; //  -------------(2) 
        }
        str = str + "</td></tr>"; // ------------(3) 
    }                       
    $(".title").append(str);
}

此代码是jquery代码的一部分。 我想在(1)和(3)

之间创建代码

但是不要工作(2)代码。

我的代码有什么问题?

5 个答案:

答案 0 :(得分:2)

cnt_chapter未定义此处也是附加

的问题
var cnt_chapter = 10;
function abc()
{
    var str = "";
    for (var i = 0; i < 10 ; i++)
    {
        str += "<tr><td>";
        for(var m = 1 ; m <= cnt_chapter ; m++)
        {
            str = str + "<span>" + m +"</span> ";
        }
        str = str + "</td></tr>";
    }                       
     $(".title").append(str);
}

abc();

Demo

答案 1 :(得分:2)

function abc()
{
    var str = "";  //  -------------------(4) 
    for (var i = 0; i < 100 ; i++)
    {
        str += "<tr><td>"; // ------------------(1)
            for(var m = 1 ; m <= cnt_chapter ; m++)
        {
            str += "<span>" + m +"</span> "; //  -------------(2) 
        }
        str += "</td></tr>"; // ------------(3) 
    }                       
    $(".title").append(str);
}

答案 2 :(得分:1)

我想你想要:

function abc() {
    var str = "";
    for (var i = 0; i < 100 ; i++) {
        str += "<tr><td>";
        for(var m = 1 ; m <= cnt_chapter ; m++){ 
            str = str + "<span>" + m +"</span> ";
        }
        str += "</td></tr>";
    }
    $(".title").append(str);
}

请注意,您需要保留上一次迭代中的HTML,因此您应该将<tr>附加到现有的str值,而不是替换它。

答案 3 :(得分:0)

每次围绕外部循环擦除字符串,因此它只有一行HTML行。

标记为(1)的广告代码也应使用str = str + ...,而不是str = ...

答案 4 :(得分:0)

虽然这是一个写得不好的代码,但是没有执行它的原因是没有定义变量cnt_chapter。人们已经提到没有分号,并且正在构建的字符串正在外循环等中被替换。这些是逻辑错误。即使有这些逻辑错误,如果变量cnt_chapter已被正确声明和初始化,那么代码应该已经很好地执行以产生一些错误的结果。