document.querySelector ('. List-group-item: last-child') выдает ошибку, поскольку это не последний элемент # items , это на самом деле li .
Чтобы получить последний элемент элемента с классом, захватите все элементы с помощью document.querySelectorAll (". list-group-item") , ( все, что содержит querySelectorAll , помещается в массив ), а l oop через этот массив, чтобы получить последний элемент.
Я переместил document.querySelector ('. list-group-item: last-child') в конце, иначе он был бы перезаписан document.querySelectorAll (". list-group-item") .
Надеюсь, это поможет.
// select by the class .list-group-item
let items = document.querySelectorAll(".list-group-item");
items.forEach(function(item, index) {
item.style.color = "red";
});
// select by the class .list-group-item, pseudo class: nth-child(2)
let secondItem = document.querySelector(".list-group-item:nth-child(2)");
secondItem.style.color = "coral";
// select by the element <li>, pseudo class: last-child
let liLastItem = document.querySelector("li:last-child");
liLastItem.style.color = "cyan";
// select by the class .list-group-item, pseudo class: last-child
let lastItems = document.querySelectorAll(".list-group-item");
lastItems.forEach(function(lastItem, index) {
if (index === lastItems.length - 1) {
lastItem.style.color = "purple";
}
});
<div class="container">
<div id="main" class="card card-body">
<h2 class="title">
Items
</h2>
<ul id="items" class="list-group">
<li class="list-group-item">
Item 1
</li>
<li class="list-group-item">
Item 2
</li>
<li class="list-group-item">
Item 3
</li>
<!-- Not classed <li> before classed <li>s -->
<li>Item 3.5</li>
<li class="list-group-item">
Item 4
</li>
<!-- Not classed <li> after classed <li>s-->
<!-- this causes error -->
<li>Item 5</li>
</ul>
</div>
</div>