我正在尝试使用 javascript 选择父级的每三个元素并向其添加一个 css 类。对我来说听起来很简单,但我无法让它发挥作用。
我发现this https://stackoverflow.com/questions/4274673/javascript-loop-through-every-third-child-node?s=773e8b37-d89e-4c60-8512-9279e30cb5dd对我来说完成这个任务看起来很不错,但我对 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")
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)