getElementsByClassName возвращает массивную структуру списка.Когда вы используете [0], вы работаете с первым элементом в этом списке.Чтобы работать со всеми из них, выполните итерацию по списку, как и для любого массива.
Однако в вашем коде есть и другие проблемы: повторяющиеся идентификаторы не допускаются в документе, поэтому вы не будетевозможность доступа к нескольким элементам "#mydivid".Поскольку вы уже перебираете отдельные дочерние элементы, вероятно, было бы проще нацелить родительский элемент (используя el.parentNode
) вместо зависимости от идентификатора:
for (el of document.getElementsByClassName('date-display-single day')) {
// removing the Date stuff, since it's not directly relevant to the question
if (el.innerHTML === '24.02') {
el.parentNode.className += " today"
}
}
.today {
border: 2px solid red;
color: red;
}
<div><div class="date-display-single day">22.02</div></div>
<div><div class="date-display-single day">23.02</div></div>
<div><div class="date-display-single day">24.02</div></div>
<div><div class="date-display-single day">24.02</div></div>
<div><div class="date-display-single day">25.02</div></div>
Так как это было помечено jQuery, вот jQuery с одной строкой, эквивалентный приведенному выше:
$('.date-display-single.day:contains("24.02")').parent().addClass('today')
.today {
border: 2px solid red;
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div><div class="date-display-single day">22.02</div></div>
<div><div class="date-display-single day">23.02</div></div>
<div><div class="date-display-single day">24.02</div></div>
<div><div class="date-display-single day">24.02</div></div>
<div><div class="date-display-single day">25.02</div></div>