-1

「幅」(列) と「高さ」(行) に基づいてテーブルを作成しようとしていますが、うまくいきません。私のコードに何か問題がありますか?

コード:

for(var i=0;i<width;i++){
        $('#map').append(
            '<tr>'+
                for(var e=0;e<height;e++){

                }
            +'</tr>'
        );
    };
4

4 に答える 4

3

あなたのコードは無効です。そこに 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);
于 2013-01-15T21:28:26.077 に答える
1

プログラムで要素を作成し、代わりに要素を<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アクセス用に最適化されています。

于 2013-01-15T21:27:16.773 に答える
1

次のように作成できます。

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)
}
于 2013-01-15T21:31:30.633 に答える
1

あなたがしていることを行う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に一度だけアクセスできます。

于 2013-01-15T21:33:14.270 に答える