使用vanilla javascript复制.each()和$(this).find()

问题描述 投票:0回答:1

我想基本上完成下一个逻辑,但使用vanilla javascript

$("li").each(function () {
    if (
        $(this).find("> .someClassName:nth-child(2)").length &&
        $(this).find("> .someClassName:last-child").length
    ) {
        $(this).addClass("className");
    }
});

我尝试了下一个逻辑,但它不起作用..

const selectedLIs = document.querySelectorAll("li");
selectedLIs.forEach(element => {
    if (
        element.querySelector("> .someClassName:nth-child(2)") && element.querySelector("> .someClassName:last-child")
    ) {
        element.classList.add("className");
    }
});

它给了我这个错误......

无法在'Element'上执行'querySelector':'> .someClassName:nth-​​child(2)'不是有效的选择器。

那么我怎样才能用Javascript实现同样的目的呢?

javascript foreach find each
1个回答
1
投票

尝试从选择器中删除>

element.querySelector(".someClassName:nth-child(2)") && element.querySelector(".someClassName:last-child")
© www.soinside.com 2019 - 2024. All rights reserved.