JSFiddle - React, Tailwind, and code Playground
by merygarriga
HTML
<html>
<head>
<meta charset='UTF-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<title>Document</title>
<link rel='stylesheet' href='style.css'>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
</head>
<body style="font-family: 'Courier New', Courier, monospace;
text-align: center; background-color: slategray;">
<h1>MANIPULACIÓ del DOM</h1>
<h2>Dataset</h2>
<p class='explain'>La propietat <b>dataset</b> ens proporciona accés a <i>atributs de dades (data-*)</i> personalitzats pels elements HTML.</p>
<p>Per saber la temporada de sembrar i el temps de germinació, fes click sobre el que vulguis saber.</p>
<ul id="llavors">
<li data-temps-germinacio="15-20 dies" data-temps-sembra="Març-Juny">Api</li>
<li data-temps-germinacio="5-10 dies" data-temps-sembra="Març-Abril">Carabassó</li>
<li data-temps-germinacio="5-7 dies" data-temps-sembra="Agost-Febrer">Espinacs</li>
<li data-temps-germinacio="3-7 dies" data-temps-sembra="Abril-Maig">Meló</li>
<li data-temps-germinacio="12-15 dies" data-temps-sembra="Març-Juny">Pastanagues</li>
<li data-temps-germinacio="5-10 dies" data-temps-sembra="Octubre-Febrer">Pèsols</li>
<li data-temps-germinacio="10-12 dies" data-temps-sembra="Febrer-Juliol">Porro</li>
<li data-temps-germinacio="5-8 dies" data-temps-sembra="Febrer-Maig">Tomàquet</li>
</ul>
<span id="click"></span>
<br><br><br>
<p>Fes click als dos números que vols que és sumin, un de cada fila:</p>
<div id="numero1">
<div class="numero" data-num="1">1</div>
<div class="numero" data-num="2">2</div>
<div class="numero" data-num="3">3</div>
<div class="numero"...
CSS
h1 {
font-size: 3em;
color: #ded1a9;
}
h2 {
font-size: 2em;
font-weight: bold;
font-family: Arial, Helvetica, sans-serif;
color: #1a3651;
}
p,
label {
font-family: Arial, Helvetica, sans-serif;
color: #b0b8bf;
}
.explain {
color: #babfb0;
}
span {
font-weight: bold;
color: #babfb0;
}
ul li {
list-style: none;
cursor: pointer;
color: #b0b8bf;
}
#numero1,
#numero2 {
display: flex;
justify-content: center;
}
div.numero,
#numero2 div.numero {
background-color: aquamarine;
height: 90px;
width: 90px;
margin: 10px;
border-radius: 30px;
display: flex;
justify-content: center;
align-items: center;
font-size: 3rem;
cursor: pointer;
}
#numero2 div.numero {
background-color: aqua;
}
JavaScript
document.querySelectorAll('#llavors li').forEach(elem => {
elem.addEventListener('click', e => {
document.getElementById('click').innerHTML = "<br>El temps de germinació és: " + e.target.dataset.tempsGerminacio;
});
elem.addEventListener('click', e => {
document.getElementById('click').innerHTML += "<br>La temporada de sembrar és " + e.target.dataset.tempsSembra;
});
});
function seleccionarNumeros() {
let num1;
let num2;
let numeroSeleccionado1;
let numeroSeleccionado2;
document.querySelectorAll("#numero1 div.numero").forEach(elem => {
elem.addEventListener('click', e => {
if (numeroSeleccionado1) {
numeroSeleccionado1.style.border = "";
}
numeroSeleccionado1 = e.target;
num1 = e.target.dataset.num;
e.target.style.border = "2px solid black";
actualizarResultado(num1, num2);
});
});
document.querySelectorAll("#numero2 div.numero").forEach(elem => {
elem.addEventListener('click', e => {
if (numeroSeleccionado2) {
numeroSeleccionado2.style.border = "";
}
numeroSeleccionado2 = e.target;
num2 = e.target.dataset.num;
e.target.style.border = "2px solid black";
actualizarResultado(num1, num2);
});
});
}
function actualizarResultado(num1, num2) {
if (num1 && num2) {
document.getElementById('resultat').innerHTML = "La suma de " + parseInt(num1) + " + " + parseInt(num2) + " = " + (parseInt(num1) + parseInt(num2));
}
}
seleccionarNumeros();