Чтобы найти все элементы <img>
на странице и присвоить полученную NodeList
переменной:
// (returns live HTMLCollection):
let allImages1 = document.images;
// or (returns (static, non-live) NodeList):
let allImages2 = document.querySelectorAll('img');
// or (returns (live) HTMLCollection):
let allImages3 = document.getElementsByTagName('img');
Чтобы узнать, сколько элементов <img>
было найдено, просто перейдите к length
свойство NodeList
, например:
let totalNumberOfImages = allImages1.length;
Чтобы продемонстрировать разницу между «живыми» и «статическими» коллекциями:
Использование: document.images
:
let images = document.images,
counter = document.querySelector('.count');
counter.textContent = images.length;
Array.from(images).forEach(
(el) => {
el.addEventListener('click', (evt) => {
evt.target.remove();
counter.textContent = images.length;
});
})
body {
display: grid;
grid-template-columns: repeat(3, 200px);
}
span.count {
grid-column: 1 / -1;
background-color: limegreen;
text-align: center;
font-weight: bold;
}
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<span class="count"></span>
JS Fiddle demo .
Использование document.querySelectorAll('img')
:
let images = document.querySelectorAll('img'),
counter = document.querySelector('.count');
counter.textContent = images.length;
Array.from(images).forEach(
(el) => {
el.addEventListener('click', (evt) => {
evt.target.remove();
counter.textContent = images.length;
});
})
body {
display: grid;
grid-template-columns: repeat(3, 200px);
}
span.count {
grid-column: 1 / -1;
background-color: limegreen;
text-align: center;
font-weight: bold;
}
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<span class="count"></span>
JS Fiddle demo .
Использование document.getElementsByTagName('img')
:
let images = document.getElementsByTagName('img'),
counter = document.querySelector('.count');
counter.textContent = images.length;
Array.from(images).forEach(
(el) => {
el.addEventListener('click', (evt) => {
evt.target.remove();
counter.textContent = images.length;
});
})
body {
display: grid;
grid-template-columns: repeat(3, 200px);
}
span.count {
grid-column: 1 / -1;
background-color: limegreen;
text-align: center;
font-weight: bold;
}
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<img src="https://placekitten.com/200/200" />
<span class="count"></span>
JS Fiddle demo .
Обратите внимание, что мы (пытаемся) обновить счет в том жепуть в каждой демонстрации, просто доступ к свойству length
переменной images
;переменная обновляется и поэтому является «активной» при использовании document.images
и document.getElementsByTagName()
, но она остается неизменной и, следовательно, «статической» при использовании document.querySelectorAll()
:
Ссылки: