Для начала, найдите отличия:
1.
delMessage и
dellMessage
2.
lenght и
length
3. Оператор
> и
<
Во вторых, переменную
i нужно определять и в данном случае с помощью
ключевого слова let. После того, как с этим разобрались, выясниться, что у вас все блоки сразу же скроются, т.к. вы вызываете функцию в цикле, а не передаёте её аргументом, как callback-функцию. То есть, необходимо передавать только имя функции -
delMessage, а не вызывать её
delMessage(). И переходим к последнему пункту - как передать аргументы. Используем
метод bind()
На выходе, получаем
примерно такой код:
let closeIco = document.getElementsByClassName('clossing');
for (let i = 0; i < closeIco.length; i++) {
closeIco[i].addEventListener('click', delMessage.bind(this, i));
}
function delMessage(itemNum) {
messages = document.getElementsByClassName('message');
messages[itemNum].style.display = 'none';
}
Что касается последнего пункта, то можно сделать просто - вызвать нужную нам функцию внутри callback-функции обработчика события.
closeIco[i].addEventListener('click', () => {
delMessage(i);
});