如何在纯JavaScript中用"p"标记包装包含内联元素的文本



我有一些文本需要用"p"标记包装。我如何通过Plain JavaScript实现这一点?我尝试使用下面的脚本,但它省略了内联元素。

var texts = function (first, firstTexts) {
first = first.firstChild;
while(first) {
if (first.nodeType == Node.TEXT_NODE)
firstTexts.push(first);
first = first.nextSibling;
}
};
var textWrap = function (thisText) {
for(var node of thisText) {
var addTag = document.createElement('p');
node.parentNode.insertBefore(addTag, node);
addTag.appendChild(node);
}
};
var textElements = [];
texts(document.querySelector(".div"), textElements);
textWrap(textElements);

jQuery解决方案可用。但简单的JavaScript答案可能很优雅。我搜索了很多次Stack Overflow和其他网站,但都没有找到任何线索。

这是我的HTML

<div class="div">
<a href="#read">Learning</a> is <i>growing</i> process. 
<br>
Knowledge <span>removes the fear</span>. 
</div>  

预期输出

<div class="div">
<p><a href="#read">Learning</a> is <i>growing</i> process.</p>
<br>
<p>Knowledge <span>removes the fear</span>.</p>
</div>

我是JavaScript的初学者。朋友们请帮我做这件事。谢谢

<div...>中添加id="myDiv",然后:

var innerHTML=document.getElementById("myDiv").innerHTML;
document.getElementById("myDiv").innerHTML="<p>"+innerHTML.split("<br>").join("</p>n<br>n<p>")+"</p>";

一次性解决方案。。。它将不断添加<p>-</p>

最新更新