Я перебираю массив и показываю его на экране. У меня есть проблема. Я попытался добавить функцию, которая при нажатии на текст удаляет текст с щелчком. Вот мой код:
var div = document.querySelector('div');
var array = [
"Banana",
"Chocolate",
"Oranges"
];
for(let i = 0; i < array.length; i++){
var p = document.createElement('p');
p.textContent = array[i];
div.appendChild(p);
p.onclick = function(){
array.splice(array[i], 1);
console.log(array);
}
}
Когда я нажимаю на него, он удаляет элемент из массива и записывает его в консоль. Но он не отображается на экране. Любая помощь?
Спасибо, Scratch Cat
Ну вот:
var div = document.querySelector('div');
var array = [
"Banana",
"Chocolate",
"Oranges"
];
for (let i = 0; i < array.length; i++) {
let p = document.createElement('p'); //note the block scoping
p.textContent = array[i];
div.appendChild(p);
p.onclick = function() {
array.splice(array.indexOf(this), 1); //splice wants an index...
this.remove(); //remove el from document tree
console.log(array);
}
}
Кажется, ты рядом. Вы удалили элемент из массива, но не из DOM, поэтому вы не можете увидеть обновление в html.
for(let i = 0; i < array.length; i++){
var p = document.createElement('p');//note the block scoping
p.textContent = array[i];
div.appendChild(p);
p.onclick = function(){
array.splice(i, 1);
this.remove();//also remove from the DOM
console.log(array);
}
}
for(let i = 0; i < array.length; i++){
let p = document.createElement('p');//note the block scoping
p.textContent = array[i];
div.appendChild(p);
p.onclick = function(){
array.splice(i, 1);//splice wants an index...
p.remove();//remove el from document tree
console.log(array);
}
}
Вы также можете удалить элемент html?