Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jsPrPCPA 25 of 62 menu
◀ ▶

Adicionando uma nova compra na calculadora de produtos

Para começar, vamos fazer com que ao clicar no botão, uma nova linha com uma compra seja adicionada à tabela:

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 = 'remover'; td.classList.add('remove'); tr.appendChild(td); table.appendChild(tr); });

A solução que apresentei, no entanto, tem problemas evidentes com duplicação de código: basicamente para cada célula escrevemos o mesmo código.

Seria apropriado ter uma função para criar uma célula da tabela. Deixe que esta função receba como primeiro parâmetro uma referência à linha da tabela, como segundo parâmetro - o texto da célula da tabela, e como terceiro - o nome da classe CSS da célula:

function createCell(tr, value, name) { }

Tendo tal função, poderíamos reescrever o código acima da seguinte forma:

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, 'remover', 'remove'); table.appendChild(tr); });

Implemente a função createCell que descrevi.

Copie meu código para adicionar uma nova compra. Teste a adição de uma nova compra na tabela.

Modifique a função createCell de forma que ela retorne via return a célula da tabela criada.

← →
↑
Português▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar