Как оставить невидимый маркер в DOM, чтобы позже я мог заполнить его элементами?

0

Представьте себе ситуацию, когда я хотел бы динамически поместить строки в таблицу:

<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 или что-то подобное.

Теги:
dom
google-chrome

2 ответа

1

Вы можете всегда использовать tbody для добавления новых строк

<table>
   <thead>
   <tr><th>Title</th><th>Author</th>
   </thead>
   <tbody>
   <!--rowsGoHere-->
   </tbody>
</table>
  • 0
    Как я уже говорил, это не сработает - это должен быть общий элемент (это требование). Но ваш ответ дал мне идею: могу ли я использовать комментарий <!--rowsGoHere--> ? Это узнаваемый член DOM? Могу ли я вставить после или до этого?
  • 0
    Что вы подразумеваете под «общим элементом»? Вместо <div class = "rowGoHere"> </ div> вы можете использовать <tbody class = "rowGoHere"> </ tbody>
Показать ещё 3 комментария
0

Поэтому я закончил это:

<table>

  <tr><th>Title</th><th>Author</th>
  <!--rowsGoHere-->

</table>

Затем я мог бы идентифицировать этот комментарий как элемент DOM и вставить то, что мне нужно, до него с помощью insertBefore(). Преимущество такого подхода заключается в том, что он полностью действителен независимо от того, с какими элементами html он используется (я могу использовать его как с <table> так и внутри <div> или <ul>).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню