我有一个 Javascript 索引数组,例如 [0, 2]
还有一堆这样的段落元素
<div>
<p>some text</p>
<p>some more text</p>
<p>some sample text</p>
<p>some text here</p>
<p>some great text</p>
</div>
将 css 类添加到索引出现在数组中的段落的简洁方法是什么?在这种情况下,我希望在第一段和第三段中添加一个类。
预期输出:
<div>
<p class=“red”>some text</p>
<p>some more text</p>
<p class=“red”>some sample text</p>
<p>some text here</p>
<p>some great text</p>
</div>
最佳答案
使用querySelectorAll
并检查索引:
const arr = [0, 2];
const parent = document.getElementById("parent");
parent.querySelectorAll("p").forEach((elem, idx) => arr.includes(idx) ? elem.classList.add("red") : elem);
.red {
color: red;
}
<div id="parent">
<p>some text</p>
<p>some more text</p>
<p>some sample text</p>
<p>some text here</p>
<p>some great text</p>
</div>
旧版浏览器:
var arr = [0, 2];
var parent = document.getElementById("parent");
parent.querySelectorAll("p").forEach(function(elem, idx) {
if (arr.indexOf(idx) > -1) {
elem.classList.add("red");
}
});
.red {
color: red;
}
<div id="parent">
<p>some text</p>
<p>some more text</p>
<p>some sample text</p>
<p>some text here</p>
<p>some great text</p>
</div>
关于javascript - 根据javascript中数组中的索引将css类添加到子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55843002/