Изменить атрибут элемента при обращении к нему
Приветствую всех
Снова вопрос Есть список ul, внутри него li-шки Нужно сделать так, чтобы по клику по элементу списка менялся его класс. Не понимаю, как правильно обратиться. function completeTodo() { var opn = document.getElementsByTagName(li); if (opn.className != 'completed') { //liCompleted = true; opn.setAttribute('class', 'completed'); } else { opn.setAttribute('class', 'opened'); //liCompleted = false; } inputField.focus(); } //Обработчик клика opn.addEventListener('click', completeTodo, false); } |
Цитата:
|
Цитата:
Хотя вообще здесь бы мне подошёл простой пример с кликом по любому элементу со сменой его цвета, например) |
Zuko,
тут всё что вам нужно для создания кода https://learn.javascript.ru/event-delegation и главное понять что у NodeList opn нет свойств элемента |
Цитата:
Цитата:
|
Цитата:
Запустить цикл внутри массива? |
Пробую вот так - всё равно не получается(
document.getElementById('todo-list').addEventListener("click", displayDate); function displayDate() { var target = event.target; // где был клик? if (target.tagName != 'li') return; alert('daw'); li.setAttribute('class', 'karamba'); } |
Zuko,
html минимальный кнопочку run -- сделайте макет нормальный -- и event добавьте в функцию раз с ним работаите |
Разобрался
document.getElementById('todo-list').addEventListener("click", todoDone); function todoDone() { var target = event.target; // где был клик? if (target.className == 'opened' && target.tagName == 'LI') { target.className = 'completed'; } else { target.className = 'opened'; } |
Цитата:
|
Часовой пояс GMT +3, время: 21:03. |