以下是代码段
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)没有替换。
我不需要这个,但我想知道我在这里做错了什么?所以,我的问题是它为什么不以这种方式工作。希望有人能告诉我这个事实。
感谢您的努力!
答案 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