Проверить, содержит ли класс все элементы массива? - PullRequest
1 голос
/ 15 апреля 2020

Я пытаюсь увидеть, содержат ли классы div все элементы массива, а затем добавить «display: block» к этому div.

Если бы я хотел добавить «display: block» для каждого отдельного класса, я бы сделал это следующим образом:

let arrayList = [car, animal, boat]

for(i=0; i<arrayList.length; i++) {
    let getClass = document.getElementsByClassName(arrayList[i]);
    for(c=0; c<getClass.length; c++) {
        getClass[c].style.display ="block";
    }
}

Но как я могу проверить, все ли классы div являются в arrayList? А затем добавить к нему «display: block»?

Например, если у меня есть один div со структурой <div class="car animal boat">, я бы хотел, чтобы он имел «display: block», но если структура div имеет <div class="car animal"> Я бы хотел, чтобы он отображал "display: none".

Массив будет динамическим c. Как мне этого добиться?

1 Ответ

5 голосов
/ 15 апреля 2020

Вы можете использовать querySelectorAll:

let classes = ["car", "animal", "boat"]
, classTest = "." + classes.join(".")

document.querySelectorAll(classTest).forEach(div => div.style.display = "block")
div { display: none; }
<div class="car animal boat">Show Me</div>
<div class="car boat">Hide</div>
<div class="car animal">Hide</div>
<div class="car animal boat">Show Me too</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...