td内部の一部を囲みたいので問題がtrありますので、知っておく必要があります。
どのDOM要素がtrの子になることができますか?(私はdivできません。)
W3Cはこのようなものを指定します。については、ここでtr見つけることができます。基本的に、要素のみが。の直接コンテンツになることができます。thtdtr
テーブル内に他のものが必要な場合は、または要素内に配置する必要があります。たとえば、を含むフロー要素を含めることができます。tdthtddiv
ul状況は、私が詳細に説明した状況と非常に似ています。 <ul>内で<li>と一緒に他のTAGを使用できますか?ですから、最初にそれを読むことをお勧めします。
特に、あまり明白ではない点は、ASCII空白はテキストノードを形成しないのに対し、非空白文字は形成され、の子にはなり得ない不正なテキストノードを形成することですtable。
tr次に、現在の標準https://html.spec.whatwg.org/multipage/tables.html#the-table-elementの「コンテンツモデル」に次のように表示されます。
コンテンツモデル:0個以上
tdのth、、およびスクリプトをサポートする要素。
質問がHTML仕様に準拠するHTMLドキュメントから構築されたDOMツリーに関するものである場合、paxdiabloの回答で説明されているように、回答はとですtd。th
ただし、スクリプトでは、DOMツリーを好きなように変更できます。例えば:
<!doctype html>
<table border>
<tr><td>foo <td>bar
</table>
<script>
var p = document.createElement('div');
p.innerHTML = 'Hello world!';
document.getElementsByTagName('tr')[0].appendChild(p);
</script>
これにより、div要素が要素の子になりtrます。いくつかのtd要素を作成して、それらを要素の子にすることもできdivます。
これが理にかなっているかどうか、そしてそれがブラウザを混乱させる可能性があるかどうかは別の問題です。また、ブラウザは通常HTMLマークアップを解析しません。たとえば、要素に子としてのtr要素が含まれているdiv場合、パーサーはそのような場合を処理する準備ができていません。HTMLマークアップでは、要素をグループ化tdする(それらをの子にする以外の方法で)ことはできません。trしかし、DOMでは、奇妙なツリーを作成できます。
td一部の要素を特別な方法で処理したい場合は、それらに。を付けますclass。