Javascript 全部更改<;p>;类为<;代码>;

Javascript 全部更改<;p>;类为<;代码>;,javascript,dom,getelementsbyclassname,Javascript,Dom,Getelementsbyclassname,使用文档.getElementsByID可以很好地工作,但是如何将所有带有prgrph类的p标记更改为code,从而取代而将 var b = document.querySelectorAll('p'); for (var i = 0; i < b.length; i++) { b[i].setAttribute('id', 'prgrph'); } var b=document.querySelectorAll('p'); 对于(变量i=0;i

使用
文档.getElementsByID
可以很好地工作,但是如何将所有带有
prgrph
类的
p
标记更改为
code
,从而取代

而将

var b = document.querySelectorAll('p'); 

for (var i = 0; i < b.length; i++) {
  b[i].setAttribute('id', 'prgrph');
}
var b=document.querySelectorAll('p');
对于(变量i=0;i
但这是行不通的:

function changeTagName(el, newTagName) {
  var n = document.createElement(newTagName);
  var attr = el.attributes;
  for (var i = 0, len = attr.length; i < len; ++i) {
    n.setAttribute(attr[i].name, attr[i].value);
  }
  n.innerHTML = el.innerHTML;
  el.parentNode.replaceChild(n, el);
}

changeTagName(document.getElementsByClassName('prgrph'), 'code');
函数更改标记名(el,新标记名){
var n=document.createElement(newTagName);
var attr=el.attributes;
对于(变量i=0,len=attr.length;i
我试图使用
document.getElementsByClassName
,但在
attr.length
上出现错误:

未捕获的TypeError:无法读取未定义的属性“length”


ID必须是唯一的,并且您可能希望逐个更改
p
标记

我不知道你为什么先在
p
标签上循环,然后再循环;如果第二个循环选择
P
标记而不是类,那么第一个循环实际上并不需要

var b=document.querySelectorAll('p');
对于(变量i=0;i
code{
颜色:红色
}
第1段

第2段


第3段

请单击
代码段编辑器并提供一个包含相关HTMLThere's no
HTMLCollection#attributes
属性的链接,因此获取其长度可能不起作用。请参阅更新的注释-根据您的需要,可能不需要第一个循环