Надо как-то изменить в функции значение value, чтобы f4 и f5 функция правильно срабатывала


#1

//JS там есть 2 комментария

var button1 = document.getElementById(“buttonPlus”);

button1.onclick = f1;

var button2 = document.getElementById("buttonSubtract");

button2.onclick = f2;

var button3 = document.getElementById("buttonMultiply");

button3.onclick = f3;

var button4 = document.getElementById("buttonDivide");

button4.onclick = f4;

var button5 = document.getElementById("buttonPow");

button5.onclick = f5;

var button6 = document.getElementById("buttonSquareRoot");

button6.onclick = f6;

var button7 = document.getElementById("plusInput");

button7.onclick = f7;

var third = document.getElementById("third");

var fourth = document.getElementById("fourth");

var fifth = document.getElementById("fifth");

function f7() {

var question = prompt("Сколько добавить, максимум 3");

if (question == 1) {

third.className = "no";

}

if (question == 2) {

third.className = "no";

fourth.className = "no";

}

if (question == 3) {

third.className = "no";

fourth.className = "no";

fifth.className = "no";

}

else {

third.className = "no";

}

}

function f1() {

var third = document.getElementById("third").value;

third = parseInt(third);

var fourth = document.getElementById("fourth").value;

fourth = parseInt(fourth);

var fifth = document.getElementById("fifth").value;

fifth = parseInt(fifth);

var first = document.getElementById("first").value;

first = parseInt(first);

var second = document.getElementById("second").value;

second = parseInt(second);

var results = +first + +second + third + fourth + fifth;

// Тут все нормально, т.к value = 0

var Text = document.getElementById("test");

Text.innerHTML = results;

}

function f2() {

var third = document.getElementById("third").value;

third = parseInt(third);

var fourth = document.getElementById("fourth").value;

fourth = parseInt(fourth);

var fifth = document.getElementById("fifth").value;

fifth = parseInt(fifth);

var first = document.getElementById("first").value;

first = parseInt(first);

var second = document.getElementById("second").value;

second = parseInt(second);

var Text = document.getElementById("test");

var results = first - second - third - fourth - fifth;

Text.innerHTML = results;

}

function f3() {

var third = document.getElementById("third");

third = parseInt(third);

var fourth = document.getElementById("fourth");

fourth = parseInt(fourth);

var fifth = document.getElementById("fifth");

fifth = parseInt(fifth);

var first = document.getElementById("first").value;

first = parseInt(first);

var second = document.getElementById("second").value;

second = parseInt(second);

var Text = document.getElementById("test");

var results = first * second; 

// а тут так не получится, т.к умножаем на 0

Text.innerHTML = results;

}

function f4() {

var first = document.getElementById("first").value;

first = parseInt(first);

var second = document.getElementById("second").value;

second = parseInt(second);

var Text = document.getElementById("test");

var results = first/second;

Text.innerHTML = results;

}

function f5() {

var first = document.getElementById("first").value;

first = parseInt(first);

var second = document.getElementById("second").value;

second = parseInt(second);

var Text = document.getElementById("test");

var results = Math.pow(first, second);

Text.innerHTML = results;

}

function f6() {

var first = document.getElementById("first").value;

first = parseInt(first);

var Text = document.getElementById("test");

var results = Math.sqrt(first);

Text.innerHTML = parseFloat(results.toFixed(2));

}`Текст "как есть" (без применения форматирования)`

// HTML

<!DOCTYPE html><html>

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width" />

<title>for sort split</title>

<link rel="stylesheet" href="style.css" />

</head>

<body>

<h1>for sort split</h1>

<input type="text" id = "first" placeholder="Первое число">

<input type="text" id = "second" placeholder="Второе">

<button id="plusInput">+</button>

<input type="text" id = "third" class="none" value ="0" placeholder="Третье">

<input type="text" id = "fourth" class="none" value ="0" placeholder="Четвертое">

<input type="text" id = "fifth" class="none" value ="0" placeholder="Пятое">

<br>

<button type = "button" id="buttonPlus">+</button>

<button type = "button" id="buttonSubtract">-</button>

<button type = "button" id="buttonMultiply">*</button>

<button type = "button" id="buttonDivide">/</button>

<button type = "button" id="buttonPow">^</button>

<button type = "button" id="buttonSquareRoot">√</button>

<br>

<div id="test"></div>

<script src="script.js"></script>

</body>

</html>

#2

Оформите код в песочнице, пожалуйста.


#3


#4

При каких значениях не работают функции f4 и f5?


#5

Value = 0 в html из-за этого все умножение валится, надо как-то для этой функции изменить его, но setAttribute() не подходит, да и не работает


#6

Подставляла разные значения, и всё считается правильно.
А для чего написано value = 0 для трех полей?
Еще не понимаю, зачем для каждой функции заново объявлять переменные…


#7

Для сложения value = 0; Сейчас посмотрю это, а переменные вы имете ввиду в других функциях без var писать?


#8

Про сложение наконец поняла.
Что касается переменных, то почему нельзя объявить их в самом начале, один раз?
Странный калькулятор получается. Вы это сами придумали?


#9

Не работают функции, а value = 0, потому что в функции умножение всех 5 чисел, и если не задать value, получается 0, вот в чем проблема


#10

Или вы имеете ввиду var - ы в начале, а document … ById (…) в функции?


#11

Пять чисел вы используете только в функциях сложения и вычитания, если судить по вашему коду.
Объясните пожалуйста логику работы вашего калькулятора.
Итак, есть изначально два поля ввода и кнопки арифметических действий. Почему в html созданы сразу все пять, три из которых приходится скрывать? Разве не лучше создавать поле, только если пользователь нажмет на кнопку “Добавить”? А еще, почему для каждого действия отдельная функция?


#12

Отдельная функция, т.к кнопки, а как добавлять через кнопку поля подскажите пожалуйста


#13

А 5 чисел не использую в других функциях, т.к там получится 0


#14

Создание элемента:

function createInput() {
var field = document.createElement('input');
var list = document.querySelector('.fields'); // дополнительный контейнер-обертка
                                             //  для полей
list.appendChild(field);
}

var button7 = document.getElementById("plusInput");
button7.onclick = createInput;

#15

А как все это к калькулятору добавлять ( в функцию), тоесть прибавить сам элемент


#18

Я добавил им атрибуты, а как теперь в калькулятор значение этих полей добавить?


#19

https://repl.it/@InessaSmith/test1

Попробуйте так еще. Правда пока не могу сообразить, как написать для вычитания и деления.

UPD: мне не нравится, как получилось, но работает.
Не понимаю, как должны работать последние две функции, если чисел больше двух. Поясните.


#20

Спасибо, как сообразите напишите пожалуйста, я тоже подумаю)


#21

У меня кстати вопрос, можно ди рассортировать рандомные числа? К примеру есть функция Math.random() от 1 до 10, привести эти числа к массиву с помощью slice, а потом сортировать через .sort(fn), или как-то по другому


#22

Наверняка можно, но я не смогу написать вам алгоритм.
Сама новичок в JS.