在变量中运行for循环

时间:2011-12-05 21:06:21

标签: jquery variables for-loop

我想知道,是否可以在变量中运行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不是一个可行的解决方案。

2 个答案:

答案 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);