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();