На самом деле это не элементы, а текстовые узлы, какими они и должны быть. Элементы HTML содержат текстовые узлы.
<p>text</p>
Элемент paragraph
не содержит элемент, он содержит текстовый узел.
Однако я заметил, что у вас неверная разметка, и поэтому дерево DOM в Firefox несовместимо с Chrome.
Этот текстовый узел для «Как комментатор» должен быть дочерним по отношению к абзацу, но недействительность span
(принадлежащего абзацу), содержащего div
в Chrome, заставляет его закрывать p
, поэтому текстовый узел становится родным братом. Когда HTML-парсеры создают дерево, оно достигает <div>
и понимает, что оно уже находится внутри p
и span
, а span
не может содержать div
, поэтому оно закрывает p
и создает новый элемент, div
.
Дерево DOM Firefox мягкое и фактически позволяет продолжать вложение. Это является причиной несогласованности размещения текстового узла, на который вы ссылаетесь.
В основном у вас есть это:
<p><span><div>blah</div></span>As a commentor</p>
Chrome превращает его в
<p><span></span></p><div>blah</div>As a commentor
Firefox позволяет ему сойти с рук
<p><span><div>blah</div></span>As a commentor</p>
Решение: проверьте ваш HTML и не позволяйте span
содержать div
:
http://validator.w3.org/check?uri=http://gothamist.com/2010/07/18/wikileaks_founder_no-show_at_nyc_ha.php&charset=(detect+automatically)&doctype=Inline&group=0
После того, как вы правильно отметите его, вы увидите, что текстовый узел должен находиться внутри p
.