下面是一个代码片段
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);
}
Run Code Online (Sandbox Code Playgroud)
它应该替换所有P标签,Div但它不会替换所有标签,而是替换其中一些标签。这些red(小提琴)不会被替换。
我不需要这个,但我想知道我在这里做错了什么?所以,我的问题是为什么它不以这种方式工作。希望有人能告诉我事实。
谢谢你的努力!
getElementsByTagName返回一个活动节点列表,因此每次替换节点时,列表都会更改,因此您只想获取列表中的第一个节点并替换它,直到列表为空,请参阅http://jsfiddle.net/mowglisanu/eZNqn/ 4/
单行方式;-)
首先,选择您想要的任何元素(在本例中为正文的所有内容)
var elem = document.getElementsByTagName('body')[0];
var target = elem.innerHTML;
Run Code Online (Sandbox Code Playgroud)
“线”
elem.innerHTML = target.replace(/(<div)/igm, '<p').replace(/<\/div>/igm, '</p>');
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。请参阅此处的实际操作
| 归档时间: |
|
| 查看次数: |
6737 次 |
| 最近记录: |