如何使用for循环构建动态html

时间:2014-03-12 13:34:23

标签: javascript html innerhtml dynamic-html

我想动态创建一个表,其中一些表链接到其他一个带循环的url,注意:在每个我填充的动态html中都有动态值,这些动态值是从数组中填充的。我的代码如下所示。当我运行此代码时,js返回一个数组“意外tocken'为'”,我尝试了同时也.. ..错误是相同的。帮帮我搞怪......

html += '<tr class="' + (i % 2 == 0 ? 'grid_color' : '') + '" data-type="record"  data-record-id="' + records[i].id + '" data-row-index="' + i + '">'

+ '<td data-table-col="16" title="' + Samples.htmlEntities(records[i].name_id) + '">' +
for (i = 0; i < nameSplit.length; i++) {
    if (nameSplit[i] != "None") {
        name = nameSplit[i].split(".");
        name = name.shift();
        '<a target = "_blank" href="http://www.google.com/' + name + '">' + name.substr(0, 10 / nameSplit.length) + (name.length > 10 / nameSplit.length ? '...' : '') + '</a>'
    } else {
        if (i != nameSplit.length - 1) {
            "|";
        }
    } else {
        if (i != nameSplit.length - 1) "None".concat("|");
        else "None";
    }
}
}
'</td>'

2 个答案:

答案 0 :(得分:1)

我尝试修复代码缩进和格式,但这对我来说是不可读的。但无论如何,我会以此为例,根据您的具体需求进行调整。

var html = "<table>";
for(var i = 0; i<someCondition; i++){
  html +="<tr><td>Cell 1</td><td>Cell 2</td><tr>";
}
html += "</table>";

你得到的错误是因为你的代码中的某个地方有... + for(...)这样的东西并且不起作用,for循环没有返回所以它不会得到任何东西从它。

答案 1 :(得分:1)

你不能这样做。如果您要将字符串添加到一起,则需要字符串。如果你在那一点编写代码,它会被视为无效字符串,而不是生成实际字符串的代码。

您需要将所有脚本放在将字符串追加到&#39; html&#39;。之前的部分之前。 如果你直接将它写入html源代码(这是一种可怕的方法),你应该阅读有关应用脚本的基础知识(我猜你的经验比这更好)。

所以:把脚本放在&#34; html + A + B + ......&#34;。

之前