1
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)代码。

我的代码有什么问题?

4

5 回答 5

2

cnt_chapter这里是 undifiend 也有附加问题

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();

演示

于 2012-11-13T07:57:59.030 回答
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);
}
于 2012-11-13T08:30:03.147 回答
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值,而不是替换它。

于 2012-11-13T07:57:00.963 回答
0

您每次都在外部循环周围擦除字符串,因此它只有一个 HTML 行。

您标记的行(1)也应该使用str = str + ...,而不是str = ...

于 2012-11-13T07:55:39.890 回答
0

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

于 2012-11-13T08:57:41.003 回答