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

标签 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 替换所有 P 标签,但它并没有替换所有标签,而是替换了其中的一部分。 红色 ( fiddle ) 没有替换。

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

感谢您的努力!

最佳答案

getElementsByTagName 返回一个实时节点列表,因此每次替换节点时列表都会更改,因此您只想获取列表中的第一个节点并替换它直到列表为空,请参见 http://jsfiddle.net/mowglisanu/eZNqn/4/

关于Javascript:用 Div 替换所有 P 标签(没有任何库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13390614/

相关文章:

javascript - 无法在 JavaScript 中使用 getElementById 检索 li 或 ul

javascript - 使用 jquery 将 mouseenter 事件添加到数组中具有名称的所有输入

javascript - cefsharp webview 界面的 typescript 定义

javascript - fabric.Canvas 不是构造函数

javascript - 使用 firefox 插件将 firefox 窗口置于最前面

javascript - jQuery 选择按钮旁边的隐藏输入值

javascript - 使用 Vanilla JavaScript 操作 SVG 路径坐标

javascript - Jquery PHP每10秒刷新一次背景图片

javascript - Jquery 删除 div 内的文本/数字

javascript - 英特尔 xdk 不适用于 android