javascript - 使用 Javascript 将类添加到每个第 3 个元素

标签 javascript selector nodes

我正在尝试使用 javascript 选择父元素的每三个元素并向其添加一个 css 类。对我来说听起来很简单,但我无法让它工作。 我找到了 this线程对我来说完成它看起来很不错,但我对 javascript 很胆小,所以我的尝试没有成功:

var nodes = document.getElementsByClassName("ParentsClassName").childNodes;
for(i=0; i<nodes.length; i+=3) {
  this.className += ' newClassName';
}​

当我加载它时,什么也没有发生。
感谢任何修复、开眼界和提示。
你好,玛丽安

最佳答案

var parents = document.getElementsByClassName("someClass"),
    forEach = Array.prototype.forEach.call.bind(Array.prototype.forEach),
    filter = Array.prototype.filter.call.bind(Array.prototype.filter)

forEach(parents, addClassToEveryThirdChild)

function addClassToEveryThirdChild(parent) {
    filter(parent.children, selectEveryThirdChild)
        .forEach(addSomeClass)
}

function selectEveryThirdChild(elem, i) {
    return i % 3 === 0
}

function addSomeClass(elem) {
    elem.classList.add("newClassName")
}

或循环

var parents = document.getElementsByClassName("someClass")

for (var i = 0, ii = parents.length; i < ii; i++) {
    var parent = parents[i],
        children = parent.children

    for (var j = 0, jj = children.length; j < jj; j++) {
        var elem = children[j]
        if (j % 3 === 0) {
            elem.classList.add("newClassName")
        }
    }
}

关于javascript - 使用 Javascript 将类添加到每个第 3 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10385140/

相关文章:

java - 将 Node 实现为泛型类

javascript - 从函数访问 JavaScript 对象变量

javascript - npm outdated -g Error 'Cannot read property ' length' of undefined'

jQuery 获取类选择器部分的剩余值

Android - 填充不随图层列表中的状态而改变

javascript - 使用 JavaScript 在新标签元素中创建标签元素

javascript - 为什么标量日期 GraphQL 不起作用

javascript - 滚动时执行动画

javascript - 如何正确存储复杂的 jquery 选择器链以供重用?

java - 在java中交错两个节点列表