Javascript:用Div替换所有P标签(没有任何库)

时间:2012-11-15 02:15:56

标签: 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);
}

它应该用P替换所有Div标记,但它不会替换所有red标记。 {{1}}个(fiddle)没有替换。

我不需要这个,但我想知道我在这里做错了什么?所以,我的问题是它为什么不以这种方式工作。希望有人能告诉我这个事实。

感谢您的努力!

2 个答案:

答案 0 :(得分:4)

getElementsByTagName返回一个实时节点列表,因此每次更换一个节点时,列表都会更改,因此您只想获取列表中的第一个节点并将其替换为列表为空,请参阅{{3} }

答案 1 :(得分:2)

一线方式; - )

首先,选择你想要的任何元素(在这种情况下,身体的所有内容)

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

“行”

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

我希望有所帮助。 See in action here