Akhosh
@Akhosh
Полый верстальщик

Как решить задачу с тремя элементами?

Не могу решить простую задачу.

Задача заключается: Дан чекбокс, кнопка и абзац. По нажатию на кнопку, если чекбокс отмечен, выведите в абзац слово 'привет', а если чекбокс не отмечен, то слово 'пока'
Пытался хотя-бы сделать так, чтобы при нажатии на кнопку выводило в консоль - Истина. Но где-то совершил оплошность. Могу быть уверен что ошибка имеется внутри IF, так как написал неправильно. И вполне вероятно возле названии функции func, из-за того что функцию сделал не скрытным/анонимным. Голова в тумане, не могу решить

p.s. да и возможно на строке второй innerHTML лишний, нет необходимости

<input type="checkbox" id="elem">
<input type="submit" id="btn">
<p id="p">text...</p>


let elem = document.querySelector('#elem')
let btn = document.querySelector('#btn')
let p = document.querySelector('#p')

    btn.addEventListener('click', func());
    elem = false;
     
    function func(){
        if(elem.checked = true){
            p.innerHTML =+ p.innerHTML + 'Привет'
        }
    }
    console.log(elem);
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
  1. это убрать elem = false; – в переменной же лежит элемент, с которым работать
  2. назначаете слушателя события – там просто func без скобок. Иначе слушать будет результат вызова ф-ии
  3. elem.checked == true – должно быть именно ==. У вас один знак равенства, он присваивает значение.


spoiler
const elem = document.getElementById('elem');
const btn = document.getElementById('btn');
const p = document.getElementById('p');

btn.addEventListener('click', () => p.innerText = elem.checked ? 'Привет' : 'Пока!');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы