我想知道,是否可以在变量中运行for循环?我有一个定义为var table = $('<table border="1"><tr></tr>');
的变量我想用数组生成的<th>
填充第一行。从理论上讲,它看起来像是:
var table = $('<table border="1"><tr>'for (var i=0; i< headers.length; i++){$("<th>"+headers[i]+"</th>")}'</tr>');
我试图将for循环作为
运行for (var i=0; i< headers.length; i++) {
$("<th>"+headers[i]+"</th>").appendTo(table);
}
在变量声明之外,但由于程序的其他部分,使用.appendTo
不是一个可行的解决方案。
答案 0 :(得分:2)
如果你真的不能在变量声明之外做(我不明白为什么你不能),那么这样的事情怎么样:
var headersString = '';
for (var i=0; i < headers.length; i++) {
headersString += '<th>'+ headers[i] +'</th>';
}
('<table border="1"><tr>' + headersString + '</tr></table>');
这里的工作示例:http://jsfiddle.net/hEKy5/
答案 1 :(得分:1)
不是,但这个怎么样
var row = $('table tr:first');
for (var i=0; i < headers.length; i++)
$("<th />").html(headers[i]).appendTo(row);
修改强>
我没有意识到将元素附加到dom会导致页面重排。此代码将消除该问题
var row = $('table tr:first').detach();
for (var i = 0; i < headers.length; i++)
$("<th />").html(headers[i]).appendTo(row);
$("table").prepend(row);