Вы можете использовать contents () , чтобы получить дочерние элементы (включая текстовые узлы), затем объединить unwrap () и wrapAll () :
$("p.myClass").contents().unwrap().wrapAll("<code class='myClass'></code>");
Обновление: Если у вас есть более одного элемента <p>
, вы должны выполнить итерации по ним с each () , чтобы избежать переопределения их всех внутри одного <code>
элемент:
$("p.myClass").each(function() {
$(this).contents().unwrap().wrapAll("<code class='myClass'></code>");
});