将 class 的所有元素的标签交换为 JavaScript
Exchange the tags of all elements of a class with JavaScript
var f = document.querySelector('.example');
var g = document.createElement('h2');
for (let i = 0; i < f.length; i++) {
g.innerHTML = f[i].innerHTML;
f[i].parentNode.replaceChild(g, f[i]);
}
<ul>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
</ul>
这是我想做的事情:
之后我想使用 JavaScript 对 WordPress 主题进行可访问性调整。
在以下情况下,我想用标签 <h2>
覆盖 class“.example”的 all 元素标签(目前它们是<div>
)
这里的代码示例我只到达了第一个元素(我知道),但我想用新标签“覆盖”所有:
var f = document.querySelector('.example');
var g = document.createElement('h2');
g.innerHTML = f.innerHTML;
f.parentNode.replaceChild(g, f);
我该怎么做,我已经尝试过类似的方法:
var f = document.querySelector('.example');
var g = document.createElement('h2');
for (let i = 0; i < f.length; i++) {
g.innerHTML = f[i].innerHTML;
f[i].parentNode.replaceChild(g, f);
}
但是没用。我觉得应该很简单,但我是新手
谢谢:)
每次循环都需要创建一个新的 <h2>
元素,而不是重复使用相同的元素 g
。你需要使用 document.querySelectorAll()
来获取所有 .example
元素,这样你就可以遍历它们。
var f = document.querySelectorAll('.example');
for (let i = 0; i < f.length; i++) {
var g = document.createElement('h2');
g.innerHTML = f[i].innerHTML;
f[i].parentNode.replaceChild(g, f[i]);
}
<ul>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
</ul>
var f = document.querySelector('.example');
var g = document.createElement('h2');
for (let i = 0; i < f.length; i++) {
g.innerHTML = f[i].innerHTML;
f[i].parentNode.replaceChild(g, f[i]);
}
<ul>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
</ul>
这是我想做的事情:
之后我想使用 JavaScript 对 WordPress 主题进行可访问性调整。
在以下情况下,我想用标签 <h2>
覆盖 class“.example”的 all 元素标签(目前它们是<div>
)
这里的代码示例我只到达了第一个元素(我知道),但我想用新标签“覆盖”所有:
var f = document.querySelector('.example');
var g = document.createElement('h2');
g.innerHTML = f.innerHTML;
f.parentNode.replaceChild(g, f);
我该怎么做,我已经尝试过类似的方法:
var f = document.querySelector('.example');
var g = document.createElement('h2');
for (let i = 0; i < f.length; i++) {
g.innerHTML = f[i].innerHTML;
f[i].parentNode.replaceChild(g, f);
}
但是没用。我觉得应该很简单,但我是新手
谢谢:)
每次循环都需要创建一个新的 <h2>
元素,而不是重复使用相同的元素 g
。你需要使用 document.querySelectorAll()
来获取所有 .example
元素,这样你就可以遍历它们。
var f = document.querySelectorAll('.example');
for (let i = 0; i < f.length; i++) {
var g = document.createElement('h2');
g.innerHTML = f[i].innerHTML;
f[i].parentNode.replaceChild(g, f[i]);
}
<ul>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
<li class="example">Hi</li>
</ul>