Javascript:将所有P标记替换为Div(不带任何库)

Javascript:将所有P标记替换为Div(不带任何库),javascript,Javascript,下面是一段代码片段 var pTags=document.getElementsByTagName('p'); for(i=0;i<pTags.length;i++) { var p=pTags[i], div=document.createElement('div'); div.innerHTML='P tag replaced with a div tag'; p.parentNode.replaceChild(div, p); } 它应该用Div替换所有的

下面是一段代码片段

var pTags=document.getElementsByTagName('p');
for(i=0;i<pTags.length;i++)
{
    var p=pTags[i],  div=document.createElement('div');
    div.innerHTML='P tag replaced with a div tag';
    p.parentNode.replaceChild(div, p);
}
它应该用Div替换所有的p标签,但除了部分标签之外,它并没有替换所有的p标签。红色的没有替换

我不需要这个,但我想知道我做错了什么?所以,我的问题是,为什么不这样做呢。希望有人能告诉我事实

谢谢你的努力

getElementsByTagName返回活动节点列表,因此每次替换节点时列表都会更改,因此您只需获取列表中的第一个节点并替换它,直到列表为空,请参见 首先,在本例中选择您想要的任何元素,body的所有内容

var elem = document.getElementsByTagName('body')[0];
var target = elem.innerHTML;
线路

elem.innerHTML = target.replace(/(<div)/igm, '<p').replace(/<\/div>/igm, '</p>');
我希望这有帮助

单线法-

首先,在本例中选择您想要的任何元素,body的所有内容

var elem = document.getElementsByTagName('body')[0];
var target = elem.innerHTML;
线路

elem.innerHTML = target.replace(/(<div)/igm, '<p').replace(/<\/div>/igm, '</p>');

我希望这有帮助

哦!!非常感谢,每天我都从中学到一些新的东西。再次感谢你快速而精彩的回答。哦!非常感谢,每天我都从中学到一些新的东西。再次感谢您快速而精彩的回答。可能重复@Garett,谢谢,但我没有看到。可能重复@Garett,谢谢,但我没有看到。