#javascript #html
#javascript #HTML
Вопрос:
Я пытаюсь добавить кнопки «редактировать» и «удалить» в элемент списка после нажатия на него. Я добавил 2 кнопки в элемент списка и установил для их отображения значение none в классах btnedit и btndelete:
function Add(){
let li = document.createElement('li');
let a = document.createElement('a');
let button1 = document.createElement('button');
let button2 = document.createElement('button');
button1.innerHTML = "Edit";
button2.innerHTML = "Delete";
button1.setAttribute('class','BtnEdit');
button2.setAttribute('class','BtnDelete');
let input = document.getElementById('AddText').value;
if (input.length < 3){
alert('Must be longer than 3');
}
else if(input.length > 255){
alert('Cant be longer than 255');
}
else {
if (checkDate()!=null) {
let date = checkDate();
let t = document.createTextNode(`${input} ${date}`);
let test = new storage1(input,date);
store(test);
li.appendChild(a);
a.appendChild(t);
document.getElementById("myList").appendChild(li).appendChild(a);
li.appendChild(button1);
li.appendChild(button2);
}
}
В этой функции я меняю их цвет фона при нажатии на элемент списка:
let list = document.querySelector('ul');
list.addEventListener('click', function(ev) {
if (ev.target.tagName === 'LI') {
ev.target.classList.toggle('checked');
}
}, false);
но я понятия не имею, как теперь отображать кнопки
Комментарии:
1. Я думал о чем-то подобном, когда щелкается элемент списка, измените его класс button с btnedit на btnedit1, где display isnt none
Ответ №1:
Измените отображение:
button1.style.display = "inline";
или удалите класс:
button1.classList.remove("BtnEdit");
Комментарии:
1. Да, но у меня есть несколько элементов списка, и у каждого из них есть скрытые кнопки, как я узнаю, на какой из них я нажал. Есть ли какой-либо способ, которым я могу получить доступ к дочерним элементам моего списка из eventlistener и изменить его класс?
2. Проверьте это, это должно помочь: jsfiddle.net/zmekqv8p/33
3. Я забыл, что у вас есть 2 кнопки. Я обновил его для работы с обоими: jsfiddle.net/zmekqv8p/41
4. @fxtomek для переключения между использованием класса вы можете использовать метод переключения w3schools.com/howto/howto_js_toggle_class.asp или вы используете оператор if-else . jsfiddle.net/gy7L1dos/8