想象一下我想动态地将行放在表中的情况:
<table>
<tr><th>Title</th><th>Author</th>
<div class="rowsGoHere"></div>
</table>
此代码的问题是,Chrome会将<div>
内的<table>
视为非法,并且我在检查员中看到的结果页码如下:
<div class="rowsGoHere"></div>
<table>
<tr><th>Title</th><th>Author</th>
</table>
因此,Chrome会自动将此div放在桌子上方。现在的问题是,我该如何避免这种情况?是否可以使用此<div>
之外的其他内容,我稍后可以引用它来插入元素之后或之后?我还应该指出这个元素应该是通用的要求:我不能只使用<tr class="rowsGoHere">
。
这是一个严格的HTML有效性问题,请不要推荐任何jQuery代码或类似的东西。
答案 0 :(得分:1)
您始终可以使用tbody追加新行
<table>
<thead>
<tr><th>Title</th><th>Author</th>
</thead>
<tbody>
<!--rowsGoHere-->
</tbody>
</table>
答案 1 :(得分:0)
所以我最终这样做了:
<table>
<tr><th>Title</th><th>Author</th>
<!--rowsGoHere-->
</table>
然后我可以将此注释标识为DOM元素,并使用insertBefore()
插入我需要的内容。无论使用哪种html元素,这种方法都具有完全有效的优势(我可以在<table>
以及<div>
或<ul>
内使用它。