#javascript
#javascript
Вопрос:
function deleteParentNodeOnClick() {
for (var i = 0; i < deleteButton.length; i ) {
deleteButton[i].addEventListener("click", deleteNodeOnClick);
}
}
function deleteNodeOnClick(e) {
var trash = document.querySelectorAll("i");
for (var ind = 0; ind < trash.length; ind ) {
console.log(e);
this.parentNode.parentNode.remove();
}
}
Комментарии:
1. Код имеет мало смысла для меня. Цикл в
deleteNodeOnClick
никогда не используетсяind
. Он продолжает удалять один и тот же дедушкин узел, а не что-либо связанное сtrash
.2. deleteParentNodeOnClick добавляет прослушиватель щелчков в массив кнопок удаления. deleteNodeOnClick — это прослушиватель событий. Он получает все теги <i> и удаляет что-то еще прародителя. Без дополнительного контекста я не знаю, к чему
this
относится.3. @CharlesBamford
this
— это нажатая кнопка.4. Ах, я думал, что это jQuery, и вам нужен event.target в vanillajs. Til
5. @CharlesBamford На самом деле, я подозреваю, что этот код является результатом того, что кто-то неправильно перевел jQuery в ванильный JS. Вероятно, они преобразованы
$("i").each()
вfor
цикл..each()
связываетсяthis
в функции обратного вызова,for
не делает этого в своем теле.