Представьте себе ситуацию, когда я хотел бы динамически поместить строки в таблицу:
<table>
<tr><th>Title</th><th>Author</th>
<div class="rowsGoHere"></div>
</table>
Проблема с этим кодом заключается в том, что Chrome, например, считает, что <div>
внутри a <table>
является незаконным, а полученный код страницы, который я вижу в инспекторе, следующий:
<div class="rowsGoHere"></div>
<table>
<tr><th>Title</th><th>Author</th>
</table>
Поэтому Chrome автоматически помещает этот div над таблицей. Теперь вопрос в том, как мне избежать этой ситуации? Можно ли использовать что-то другое, кроме этого <div>
которое я могу позже ссылаться на элементы вставки в или после него? Я также должен указать, что этот элемент должен быть общим: я не могу просто использовать <tr class="rowsGoHere">
.
Это строго вопрос html вопрос, пожалуйста, не рекомендуйте код jQuery или что-то подобное.
Вы можете всегда использовать tbody для добавления новых строк
<table>
<thead>
<tr><th>Title</th><th>Author</th>
</thead>
<tbody>
<!--rowsGoHere-->
</tbody>
</table>
Поэтому я закончил это:
<table>
<tr><th>Title</th><th>Author</th>
<!--rowsGoHere-->
</table>
Затем я мог бы идентифицировать этот комментарий как элемент DOM и вставить то, что мне нужно, до него с помощью insertBefore()
. Преимущество такого подхода заключается в том, что он полностью действителен независимо от того, с какими элементами html он используется (я могу использовать его как с <table>
так и внутри <div>
или <ul>
).
<!--rowsGoHere-->
? Это узнаваемый член DOM? Могу ли я вставить после или до этого?