Не работает конструкция switch
'use strict'
let message = document.querySelector('.message').value,
result = document.querySelector('.result'),
button = document.querySelector('.button');
button.onclick = () =>{
switch (message.value) {
case 'Привет Бот' && 'Привет':
result.innerHTML = ('Привет Человек')
break;
case 'Пока Бот':
result.innerHTML = ('Пока человек')
break;
case 'Как дела?':
result.innerHTML = ('Хорошо!')
break;
default:
result.innerHTML = ('Извните, я не понял ваш вопрос')
break;
}
}
Ответы (2 шт):
Автор решения: Сергей Мишин
→ Ссылка
Вы уже в строчке let message = document.querySelector('.message').value взяли текст у элемента, поэтому здесь message.value происходит ошибка. Должно быть просто switch (message) {
Автор решения: Сергей Петрашко
→ Ссылка
Как вам описали в комментарии и ответе - вы два раза берете текст у элемента. И конструкция к тому же с && не будет работать. я немого переработал алгоритм, добавил обработку случаев с введением вариантов текста.
const button = document.querySelector('.button');
const result = document.querySelector('.result');
const input = document.querySelector('.input');
button.addEventListener('click', () => {
const message = input.value.trim().toLowerCase();
switch (true) {
case message.includes('Привет'.toLowerCase()):
result.textContent = 'Привет Человек';
break;
case message.includes('Пока'.toLowerCase()):
result.textContent = 'Пока человек';
break;
case message.includes('Как дела'.toLowerCase()):
result.textContent = 'Хорошо!';
break;
default:
result.textContent = 'Извните, я не понял ваш вопрос';
break;
}
});
<input class = 'input'/>
<button class= "button">send</button>
<div class= 'result'></div>