Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 24.12.2016
Сообщений: 46

Делаю калькулятор, что написать, что бы выводилась нажатая кнопка?

19.10.2019, 20:12. Показов 1686. Ответов 2

Студворк — интернет-сервис помощи студентам
Делаю калькулятор. Как мне сделать, что бы по нажатию выводилось, то что я нажал.
Код написал, но только для одной цифры получилось. Я использовал один id для всех элементов. Понял что так не срабатывает. Нельзя использовать onclick в html. Вот код.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Калькулятор</title>
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <script src="js/script.js"></script>
</head>
<body>
    <div class="calc">
        <div class="input_rezult">
            <input type="text" placeholder="0" class=rezult name="rezult" id="rezult"></input>
        </div>
        <div class="buttons">
            <div id="button" class="button">1</div>
            <div id="button" class="button">2</div>
            <div id="button" class="button">3</div>
            <div id="button" class="button znak">+</div>
            <div id="button" class="button">4</div>
            <div id="button" class="button">5</div>
            <div id="button" class="button">6</div>
            <div id="button" class="button znak">-</div>
            <div id="button" class="button">7</div>
            <div id="button" class="button">8</div>
            <div id="button" class="button">9</div>
            <div id="button" class="button znak">/</div>
            <div id="button" class="button">0</div>
            <div id="button" class="button ravno">=</div>
            <div id="button" class="button clean">C</div>
            <div id="button" class="button znak">*</div>
        </div>
 
    </div>
</body>
</html>
JavaScript
1
document.getElementById("button").addEventListener("click", function() {document.getElementById("rezult").value += this.innerHTML;});
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
body {
    user-select: none;  
    background: linear-gradient(to right, #e91e63, #3f51b5);
}
 
.calc {
    width: 350px;
    height: 500px;
    background: white;
    border-radius: 20px;
    margin: 150px auto;
}
 
.input_rezult {
    background: #eaeaea;
    width: 100%;
    height: 40%;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
}
 
.rezult {
    border: none;
    width: 90%;
    height: 40%;
    margin-top: 30%;
    margin-left: 3%;
    background: #eaeaea;
    color: #585454;
    font-size: 50px;
}
 
.buttons {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between; 
    padding: 30px 40px 0;
}
 
.button {
    width: 50px;
    height: 50px;
    border-radius: 100%;
    font-size: 25px;
    box-shadow: 0px 5px 10px 5px #d8d8d8;
    display: flex;
    justify-content: center;
  align-items: center;
  margin: 7px 5px; 
  cursor: pointer;
}
 
.button:hover {
    background: #e0a334;
    transition: all 0.5s ease;
}
 
.znak {
    background: #949494;
    color: white;
}
 
.ravno {
    background: #2E2E2E;
    color: white;
}
https://codepen.io/Lasky_D2/pen/zYYoNXZ
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2019, 20:12
Ответы с готовыми решениями:

Нажатая кнопка
Как узнать, какая кнопка нажата? Видел свойство keyCode, но в w3schools посмотрел, там о нём ни слова. Там было shiftKey(), altKey(), а как...

Хотелось бы, чтоб по нажатию на кнопку что-то происходило. Но, Увы! Что я делаю не так?
Пытаюсь начать осваивать jQuery. Создал вот такой текст. (убрал лишнее) &lt;html&gt;&lt;head&gt; &lt;script&gt; ...

Подскажите, что делаю не так. Хочу сделать калькулятор, но у меня не выводятся на экран кнопки
Подскажите, что делаю не так. Хочу сделать калькулятор, но у меня не выводятся на экран кнопки. import javax.swing.*; import...

2
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
19.10.2019, 22:50
id у элементов документа должен быть уникальным у каждого, то есть он не должен повторяться. У элементов уже есть один общий класс, при перечислении элементов коллекции в цикле\методе, генерьте соответствующий контент. Или же делегируйте событие общему для них предку и if'ами проверяйте дополнительные условия.
К примеру:
JavaScript
1
2
3
4
5
6
7
8
let opCalc = {
  field: document.getElementById('bt-field'),
  res: document.getElementById("rezult"),
  events: {
    click: e => e.target.classList.contains('button') ? opCalc.res.value += e.target.textContent : false, 
  },
};
opCalc.field.addEventListener('click', opCalc.events.click);
Далее Вам следует подумать о:
1. Предотвращение повторов знаков
2. Обработка кнопок - clear, equal
Подумайте - как нужно дополнить условия в обработчике?
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
20.10.2019, 12:49
Ах да! Чуть не забыл. Дайте диву, содержащий коллекцию дивов с классом button - id="bt-field".
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div id="bt-field" class="buttons">
            <div class="button">1</div>
            <div class="button">2</div>
            <div class="button">3</div>
            <div class="button znak">+</div>
            <div class="button">4</div>
            <div class="button">5</div>
            <div class="button">6</div>
            <div class="button znak">-</div>
            <div class="button">7</div>
            <div class="button">8</div>
            <div class="button">9</div>
            <div class="button znak">/</div>
            <div class="button">0</div>
            <div class="button ravno">=</div>
            <div class="button clean">C</div>
            <div class="button znak">*</div>
        </div>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.10.2019, 12:49
Помогаю со студенческими работами здесь

Что-то не то с Майкрсофт визуал студио 2010 или я что-то не так делаю
Дело в том что при запуске вот этой программы: #include &lt;iostream&gt; using namespace std; int main () { for (int i=100; i&lt;=999;...

Какова вероятность того, что случайно нажатая цифра не окажется кратной 3?
Задача: На клавиатуре телефона 10 цифр, от 0 до 9. Какова вероятность того, что случайно нажатая цифра не окажется кратной 3? Варианты...

нажатая кнопка!
вот есть самая обыкновенная кнопка button1. мне надо сделать так, чтобы при нажатии на нее происходило определенное действие, а пока она не...

Что можно написать простого, только не калькулятор и не блокнот
Вот я потихоньку изучаю С#. Вроде бы по отдельности все знаю, а в куче связать не могу. Мне прерод посоветовал, придумать какой-то проект...

Последняя нажатая кнопка
Здраствуйте! В переменную какого типа и как получить id последней нажатой кнопки?? Заранее спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru