Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将h2标记更改为h1标记_Javascript_Html - Fatal编程技术网

Javascript 将h2标记更改为h1标记

Javascript 将h2标记更改为h1标记,javascript,html,Javascript,Html,我想将所有产品页面上的产品名称从h2更改为h1 我想用自定义代码将其更改为h1 <h2 itemprop="name" class="product_title likeh2">Aspen Ágykeret Bársony Sötétzöld 160 cm</h2> AspenÁgykeret Bársony Sötétzöld 160厘米 您可以这样做: //select all h2 elements document.querySelectorAll('h2').

我想将所有产品页面上的产品名称从h2更改为h1

我想用自定义代码将其更改为h1

<h2 itemprop="name" class="product_title likeh2">Aspen Ágykeret Bársony Sötétzöld 160 cm</h2>
AspenÁgykeret Bársony Sötétzöld 160厘米

您可以这样做:

//select all h2 elements
document.querySelectorAll('h2').forEach( element => {
  //create new h1 element
  const newElement = document.createElement('h1');

  //set the inner html to the original h2 element 
  newElement.innerHTML = element.innerHTML;

  //take all attributes from original element and assign them to the new one
  Array.from(element.attributes).forEach( attr => {
    newElement.setAttribute(attr.nodeName, attr.nodeValue)
  })

  //replace the node in the dom
  element.parentNode.replaceChild(newElement, element);
})

这里有一个方法。这将取决于浏览器对outerHTML的支持,但这在当今看来相当不错:

使用
querySelectorAll
而不是
getElementsByTagName
,因为即使元素发生变化,元素数组也不会发生变化。当您实际更新该数组中的元素时,它使用引用来更新实际元素,但在数组中不会更改。这样,我们可以继续循环并更改文档上的所有
标记,而
getElementsByTagName
返回的live list在每次将
h2
标记转换为
h1
时都会丢失元素

consthtwos=document.queryselectoral('h2');
for(设i=0;i
产品1

产品2
您的确切意思是什么?是否需要一些javascript代码将h2元素更改为h1元素?或者CSS将h2的外观改为h1,或者?请描述更多您真正想要实现的目标。产品页面上没有h1标签,只有h2。为了提高搜索引擎优化,我想把h2标签改为h1。但是我不能编辑html,我所能做的就是用javascript for rg来操作它。你能更具体一点吗?既然您可以在HTML上进行搜索和替换以将h2更改为h1,并且很明显选择不这样做,那么您有什么特殊要求?您是否需要(或认为需要)在客户机中使用JavaScript来实现这一点?当HTML被发送到客户端时,是否要在服务器端将h2转换为h1?如果目标是SEO,那么在页面发送到客户端之前,您需要将h2更改为h1。你不能指望一个搜索引擎分析你的代码,它会在一些JavaScript代码转换HTML后出现。这将需要服务器端处理。注意,这将替换outerHTML中出现的任何“h2”,包括属性名称和值。它可能在这种特殊情况下工作,但在
元素上运行相同的逻辑会将
变成
。而且,字符串化和替换HTML的总体思路对我来说似乎非常粗糙。。。