【发布时间】:2021-11-19 03:47:45
【问题描述】:
我想为一组选择性元素的所有实例添加一个 CSS 样式类:例如,所有 p 元素以及所有 h4 元素。 p>
我定义了两个 JS 变量,它们获取上述标签的所有元素,并将它们插入到一个数组中,这样我就可以创建一个函数,理论上,应该将所选类应用于所选元素/标签的所有实例.
但是,当我运行代码时,该函数似乎只将类分配给数组的第一项。
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
<style>
.italic { font-style: italic; }
</style>
</head>
<body>
<h4>Text goes in here</h4>
<p>Text goes in here</p>
<script>
function styleTxt() {
let h4Elems = document.getElementsByTagName("H4");
let pElems = document.getElementsByTagName("P");
const elemArray = [pElems, h4Elems];
for (eachElem in elemArray) {
let elemInsts = elemArray[eachElem];
for (eachInst in elemInsts) {
let givenInst = elemInsts[eachInst];
givenInst.classList.add("italic");
}
}
}
styleTxt();
</script>
</body>
</html>
如果我颠倒数组中元素标签的顺序,则 h4 元素将获得 .italic 类,但 p元素不会。
也许不能两次使用“document”指令?是否有另一种方法可以将同一类自动添加到一组多个(但不是全部)html标签中?
【问题讨论】:
-
您应该检查浏览器控制台是否有错误。
标签: javascript html css arrays dom