Javascript 将h2标记更改为h1标记
我想将所有产品页面上的产品名称从h2更改为h1 我想用自定义代码将其更改为h1Javascript 将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 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的总体思路对我来说似乎非常粗糙。。。