• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kalkulator JavaScript

Object Storage Arubacloud
0 głosów
1,314 wizyt
pytanie zadane 5 marca 2017 w JavaScript przez FYLYPOS94 Nowicjusz (180 p.)

Siema, ostatnio zacząłem się uczyć JS i chciałem zrobić prosty kalkulator. W necie dużo jest o tym ale wszystkie opierają się na input'ach. Ja chciałem zrobić kilka divów, podpisać je i klikając na nie dostajemy liczby, dodajemy itp. To mój pierwszy projekt, zatrzymałem się i nie wiem w sumie co dalej. W tym momencie chce nadać wartości znakom takim jak "+" czy też "*". Jak to zrobić ? Dodaje niżej swój kod js i html. 


	window.onload = liczby;
	var tablica = new Array(17);
	
	tablica[0] = "0";
	tablica[1] = "1";
	tablica[2] = "2";
	tablica[3] = "/";
	tablica[4] = "3";
	tablica[5] = "4";
	tablica[6] = "5";
	tablica[7] = "*";
	tablica[8] = "6";
	tablica[9] = "7";
	tablica[10] = "8";
	tablica[11] = "+";
	tablica[12] = "9";
	tablica[13] = "."
	tablica[14] = "=";
	tablica[16] = "DEL";
	tablica[15] = "-";
	var x;
	
	document.getElementById("view").innerHTML = " ";
	function liczby()
	{
		var div = "";
			for (i = 0; i <= 16; i++) 
			{
				
				if (i == 4 || i == 8 || i == 12 || i == 16) div = div + '<div class = "button" style = "clear:both;" onclick="dzialanie(' + tablica[i] + ')" >' + tablica[i] + '</div>';
				else div = div + '<div class = "button" onclick="dzialanie(' + tablica[i] + ')" >' + tablica[i] + '</div>';


			}
			document.getElementById("number").innerHTML = div;
	}

	function dzialanie(x)
	{
		console.log(x);
		console.log(document.getElementById("view").innerHTML);
		if(x === "DEL")
		{
			console.log("isllog");
		}
		else if (x === "+") {
			console.log(document.getElementById("view").innerHTML); + x;

		}
		else
		{
			document.getElementById("view").innerHTML = document.getElementById("view").innerHTML + x;
		}
		
	}
	
	
<!DOCTYPE HTML>
<html lang = "pl">
<head>
	<title> Nowe </title>
	
	<link href = "style.css" type = "text/css" rel = "stylesheet">
</head >
<body>
	<div id = "container">
		<div id = "calculate">
			<div id = "view"></div>

			<div id = "number">

			</div>
			
		</div>

	</div>
<script src = "js.js"> </script>
</body>
</html>

 

2 odpowiedzi

+2 głosów
odpowiedź 5 marca 2017 przez bumpMind Gaduła (4,260 p.)

Proponuje żebyś zapoznał się z:

Pierwsze w wygodny sposób pozwoli Ci na wygenerowanie div-ów oraz dodanie do nich odpowiednich klas/formatowania. Drugi można wykorzystać do przechowywania informacji o tym jakiej liczbie/operacji odpowiada kliknięty div.

W pętli możesz stworzyć tak jak do tej pory wszystkie przyciski oraz od razu w JS-ie podpiąć poprzez addEventListener() funkcję obsługującą event 'click'. Funkcja ta może pobierać poprzez data-set informację jaki przycisk został kliknięty, a następnie np poprzez switch/if-y wyberać co robić dalej. 

–6 głosów
odpowiedź 5 marca 2017 przez Rafał Banaszkiewicz Obywatel (1,110 p.)

hey.

jak chcesz dzialac na divach to lepiej ponadawaj divą atrybut on click czyli
 

<div onclick='add(4) >4</div>
<div onclick='add(5)'>5</div>
<div onclick='add(6)>6</div>


<script>

var operation = '';

function add(what){
operation += what;
}

</script>

w zmiennej operation masz cale dzialanie i na tym mozesz juz pracowac np funkcja eval

komentarz 5 marca 2017 przez bumpMind Gaduła (4,260 p.)
Dwie złe praktyki, mieszanie kodu JS z HTML, czyli podpinanie funkcji w html oraz używanie funkcji eval. Tego i tego powinno się unikać.
komentarz 5 marca 2017 przez FYLYPOS94 Nowicjusz (180 p.)
JS staram sie nie mieszac z HTML, a eval czemu nie ?
komentarz 5 marca 2017 przez bumpMind Gaduła (4,260 p.)

Ponieważ eval jest dość ryzykowną funkcją, MDN w podpunkcie "Don't use eval needlessly!" jest to zgrabnie wyjaśnione.

Podobne pytania

0 głosów
2 odpowiedzi 1,738 wizyt
pytanie zadane 9 kwietnia 2017 w JavaScript przez Geek1234 Użytkownik (570 p.)
0 głosów
1 odpowiedź 423 wizyt
pytanie zadane 11 lutego 2019 w JavaScript przez Kacper Lisowicz Nowicjusz (160 p.)
0 głosów
1 odpowiedź 402 wizyt
pytanie zadane 18 listopada 2021 w JavaScript przez DLFDL Początkujący (270 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...