【发布时间】:2010-10-19 03:44:07
【问题描述】:
我正在尝试在 jquery 函数中重复某些内容。我尝试了一个 for 循环,但它似乎不喜欢它的语法。 例如我有变量
var number = 2;
现在我有
$('tr').html('<td id="'+number+'"></td>');
我想要做的是从 0 循环到数字 (0,1,2) 以便最终我得到 3 。 谢谢
【问题讨论】:
标签: javascript jquery loops
我正在尝试在 jquery 函数中重复某些内容。我尝试了一个 for 循环,但它似乎不喜欢它的语法。 例如我有变量
var number = 2;
现在我有
$('tr').html('<td id="'+number+'"></td>');
我想要做的是从 0 循环到数字 (0,1,2) 以便最终我得到 3 。 谢谢
【问题讨论】:
标签: javascript jquery loops
可能有更好的方法,但这应该可行。
var loops = [1,2,3];
$.each(loops, function(index, val) {
$('tr').html('<td id="myCell' + index + '"></td>');
});
这也应该有效(常规 JS):
var i;
for(i=0; i<3; i++) {
$('tr').html('<td id="myCell' + i + '"></td>');
}
请注意我如何在 id 前面加上“myCell”这个词,以确保符合 XHTML。 (感谢@Peter Ajtai 指出这一点)。
编辑
我刚刚注意到另一个问题 - 您正在使用 .html 函数来添加单元格。但是 .html 替换了匹配元素的整个 html。所以你只会得到最后一个单元格。 :)
您可能正在寻找 .append 函数:
$('tr').append('<td id="myCell' + i + '"></td>');
EDIT 2 -- 将双引号移到 myCell 之前而不是之后。
【讨论】:
i 的位置。此外,这些 ID 无效。它们不能以数字开头。
这是一个使用匿名函数的选项。
$('TR').html(
function(){
var content='';
for (var i=0; i<=2; i++ ){
content=content+'<td id="id_'+i+'"></td>';
}
return content;
}
)
【讨论】: