Скопируйте .each () и $ (this) .find () с ванильным JavaScript - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу, в основном, сделать точную следующую логику, но с ванильным 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");
    }
});

Это дает мнеэта ошибка ...

Не удалось выполнить 'querySelector' для 'Element': '> .someClassName: nth-child (2)' не является допустимым селектором.

Так как же я могу достичь того же самого только с помощью Javascript?

1 Ответ

0 голосов
/ 28 февраля 2019

Попробуйте удалить > из селектора

element.querySelector(".someClassName:nth-child(2)") && element.querySelector(".someClassName:last-child")
...