「幅」(列) と「高さ」(行) に基づいてテーブルを作成しようとしていますが、うまくいきません。私のコードに何か問題がありますか?
コード:
for(var i=0;i<width;i++){
$('#map').append(
'<tr>'+
for(var e=0;e<height;e++){
}
+'</tr>'
);
};
「幅」(列) と「高さ」(行) に基づいてテーブルを作成しようとしていますが、うまくいきません。私のコードに何か問題がありますか?
コード:
for(var i=0;i<width;i++){
$('#map').append(
'<tr>'+
for(var e=0;e<height;e++){
}
+'</tr>'
);
};
あなたのコードは無効です。そこに for ループを含めることはできません。ちょっとアレンジしてみる。
var html;
for(var i=0;i<width;i++){
html = '<tr>';
for(var e=0;e<height;e++){
html += "<td>foo"+e+"</td>";
}
html +='</tr>'
$('#map').append(html);
};
またはさらに良い:
var html = "";
for(var i=0;i<width;i++){
html += '<tr>';
for(var e=0;e<height;e++){
html += "<td>foo"+e+"</td>";
}
html +='</tr>';
};
$('#map').append(html);
プログラムで要素を作成し、代わりに要素を<tr>
追加します<td>
。
var table = [];
for(var i = 0, $tr; i < height; i++){
$tr = $("<tr/>");
for(var j = 0; j < width; j++){
$tr.append("<td/>");
)
table.push($tr);
}
$map.append(table);
更新: DOMアクセス用に最適化されています。
次のように作成できます。
for(var i=0; i < height; i++){
var row = "<tr>";
for(var j=0; j < width; j++){
row += "<td>Something data</td>";
}
row += "</tr>";
$('#map').append(row)
}
あなたがしていることを行うjQueryの方法は次のようになります:
var $table = $('<tbody />');
for(var i = 0; i < width; i++){
$tr = $("<tr/>");
for(var e = 0; e < height; e++){
$tr.append("<td/>");
);
$table.append($tr);
};
$('#map').append($table);
そうすれば、DOMに一度だけアクセスできます。