Задать вопрос
@Skaizy

Сложить 3 строки, одна из них это математический знак(+, -, /, *) через js?

Вот такая задача, не могу решить ее, у меня происходит простая конкатенация строк, а мне нужно чтобы произошло математическое действие, помогите!

<div>
<input type="number" class="i-141" value="8"></div>
<div><input type="number" class="i-142" value="7"></div>
            <div>
                <select class="s-143">
                    <option value="+">+</option>
                    <option value="-">-</option>
                    <option value="*">*</option>
                    <option value="/">/</option>
                </select>
            </div>
            <button class="button-primary b-14">Task-14</button>
            <div class="out-14"></div>"

JS:

function f14(){
let inputFirst = Number(document.querySelector(".i-141").value);
let inputSecond = Number(document.querySelector(".i-142").value);
let select = document.querySelector(".s-143").value;

document.querySelector(".out-14").innerHTML = inputFirst + select + inputSecond;
console.log(typeof inputFirst)
console.log(typeof inputSecond)
console.log(typeof select)
}

document.querySelector('.b-14').onclick = f14;


Суть, чтобы произошло математическое действие, а мне просто строку выдает
  • Вопрос задан
  • 145 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
eval в помощь
Ответ написан
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Пригласить эксперта
Ответы на вопрос 1
@Skaizy Автор вопроса
подходящий вариант для меня вышел switch/case

пример решения, если у кого будет похожее:
switch (select) {
   case '+': answer.innerHTML = inputFirst + inputSecond;
   break;
   case '-': answer.innerHTML = inputFirst - inputSecond;
   break;
   case '*': answer.innerHTML = inputFirst * inputSecond;
   break;
   case '/': answer.innerHTML = inputFirst / inputSecond;
   break;
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы