Ваш HTML недействителен. A <p>
не может иметь <div>
в качестве ребенка. Браузер автоматически попытался исправить ваш HTML и превратил его в:
<p id="pContainer">
</p><div>paragraph text remains</div>
<p></p>
В результате, когда вы назначаете HTML из #pContainer
, поскольку браузер переместил <div>
снаружи из <p>
, <div>
остается неизменным.
Как MDN помещает :
Пункты элементы уровня блока, в частности , будут автоматически закрыты, если другой элемент уровня блока будет проанализирован перед закрывающим тегом </p>
.
(Напротив, наличие <div>
внутри другого <div>
вполне допустимо.)