24

Backbone.js を使用してアプリケーションを開発しています View クラスは、レンダリング後に 1 つの要素を返します。div または span を使用しても問題ありません。しかし、オブジェクトを tr 行としてレンダリングし始めると問題が始まります。1 つのオブジェクトを 2 ~ 3 行にレンダリングする必要があります。では、この構造を使用できますか?

<table>
    <div>
        <tr>...</tr>
        <tr>...</tr>

    </div>
</table>
4

3 に答える 3

49

table タグのすぐ内側の div は無効です。代わりに tbody を使用してください

于 2012-04-21T10:44:33.663 に答える
6

はい、それは非常に悪い考えです。

HTML 仕様では、div 要素を table 要素の子要素にすることは許可されていないため、ブラウザでエラー回復ルーチンがトリガーされます。

この入力を考えると:

<table>
  <tr><td>1</td></tr>
<div>
  <tr><td>2</td></tr>
  <tr><td>3</td></tr>
</div>
  <tr><td>4</td></tr>
<div>
  <tr><td>5</td></tr>
  <tr><td>6</td></tr>
</div>

Firefox が生成する DOM (要素の検査機能を使用して確認できます) は次のようになります。

<div>
  </div><div>
  </div><table>
  <tbody><tr><td>1</td></tr>
<tr><td>2</td></tr>
  <tr><td>3</td></tr>

  <tr><td>4</td></tr>
<tr><td>5</td></tr>
  <tr><td>6</td></tr>

</tbody></table>

div 要素がテーブルから削除され、その前に配置されていることに注意してください。これにより、行の操作には役に立たなくなります。

HTML は、表の行をグループ化するためのthead、tfoot、および tbody要素を提供します。div 要素の代わりにこれらの適切なものを使用してください (thead と tfoot はそれぞれ 1 つしか使用できませんが、tbody 要素の数に制限はありません)。

于 2012-04-21T10:50:50.423 に答える
0

これは有効な HTML ではありません。<tbody>テーブル内のブロック要素またはインライン要素をネストすることはできません。 、<tr>またはなどのテーブル要素のみ<thead>です。<div>もちろん、 a をテーブル セル (<td>または) にネストすることもできます<th>

于 2012-04-21T10:47:18.457 に答える