⊗jsPrPCPA 25 of 62 menu

Adición de nueva compra en la calculadora de productos

Para empezar, hagamos que al pulsar el botón se añada una nueva fila con la compra a la tabla:

add.addEventListener('click', function() { let tr = document.createElement('tr'); let td; td = document.createElement('td'); td.textContent = name.value; td.classList.add('name'); tr.appendChild(td); td = document.createElement('td'); td.textContent = price.value; td.classList.add('price'); tr.appendChild(td); td = document.createElement('td'); td.textContent = amount.value; td.classList.add('amount'); tr.appendChild(td); td = document.createElement('td'); td.textContent = price.value * amount.value; td.classList.add('cost'); tr.appendChild(td); td = document.createElement('td'); td.textContent = 'eliminar'; td.classList.add('remove'); tr.appendChild(td); table.appendChild(tr); });

La solución que he presentado, sin embargo, tiene problemas evidentes con la duplicación de código: básicamente para cada celda escribimos el mismo código.

Sería conveniente tener una función para crear una celda de tabla. Que esta función reciba como primer parámetro una referencia a la fila de la tabla, como segundo parámetro - el texto de la celda de la tabla, y como tercero - el nombre de la clase CSS de la celda:

function createCell(tr, value, name) { }

Teniendo tal función podríamos reescribir el código anterior de la siguiente manera:

add.addEventListener('click', function() { let tr = document.createElement('tr'); createCell(tr, name.value, 'name'); createCell(tr, price.value, 'price'); createCell(tr, amount.value, 'amount'); createCell(tr, price.value * amount.value, 'cost'); createCell(tr, 'eliminar', 'remove'); table.appendChild(tr); });

Implemente la función createCell que he descrito.

Copie mi código para añadir una nueva compra. Pruebe la adición de una nueva compra a la tabla.

Modifique la función createCell de manera que devuelva mediante return la celda de tabla creada.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar