Один из способов - выбрать все элементы с этим элементом <p>
и проверить, существует ли индекс этого конкретного элемента в массиве или нет:
var arrIndex = [0, 2];
var elems = document.querySelectorAll('div p');
for(i=0; i<elems.length; i++){
if(arrIndex.indexOf(i) !== -1){
elems[i].classList.add('red');
}
}
.red {
color: red;
}
<div>
<p>some text</p>
<p>some more text</p>
<p>some sample text</p>
<p>some text here</p>
<p>some great text</p>
</div>
Избегайте использования includes()
, поскольку он не поддерживается браузером IE и браузерами старых версий JS
Другой способ - просто зациклить индексный массив, чтобы добавить red
класс:
var arrIndex = [0, 2];
for(var i=0; i<arrIndex.length; i++){
document.querySelectorAll('div p')[arrIndex[i]].classList.add('red');
}
.red {
color: red;
}
<div>
<p>some text</p>
<p>some more text</p>
<p>some sample text</p>
<p>some text here</p>
<p>some great text</p>
</div>