Почему JQuery создает избыточные элементы <p> </ p> с этой строкой html?

0

Я пробовал это с помощью append и html в JQuery, но оба метода создают пару пустых <p></p> до и после элемента <table>, учитывая эту строку:

'<p>Blah blah my table below:</p><p><table><thead><tr><th>Col 1</th><th>Col 2</th><th>Col 3</th></tr></thead><tbody><tr><td>1</td><td>H</td><td>B</td></tr><tr><td>1</td><td>P</td><td>B</td></tr><tr><td>3</td><td>H</td><td>A</td></tr></tbody></table></p>'

Вы можете увидеть это, проверив элементы на панели результатов этой скрипты: http://jsfiddle.net/KCrrV/.

Откуда берутся эти пустые <p></p>?

  • 0
    Может быть, это мехназим в JQuery, и вы ударили это.
  • 0
    @CharlieShi О каком механизме вы говорите? Разметка недействительна.
Показать ещё 1 комментарий
Теги:

1 ответ

3
Лучший ответ

Table не может находиться внутри p тегов.

Таким образом, вы получаете empty p теги empty p вверху и внизу

пример

<p> // Browser makes it <p></p>
<table>.....</table>
</p> // Browser makes it <p></p>

Элемент P представляет собой абзац. Он не может содержать элементы уровня блока (включая сам P).

http://www.w3.org/TR/html401/struct/text.html#h-9.3.1

Ещё вопросы

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