Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Botão onClick

function calculaTodosImcs(){
    var trsPacientes = document.getElementsByClassName("paciente");

    precorreArray(trsPacientes, function (pacienteTr){

        var tdNome = pacienteTr.getElementsByClassName("info-nome")[0]; 
        var tdPeso = pacienteTr.getElementsByClassName("info-peso")[0]; 
        var tdAltura = pacienteTr.getElementsByClassName("info-altura")[0];

        var pacienteAtual = { 
            nome : tdNome.textContent, 
            peso : tdPeso.textContent, 
            altura : tdAltura.textContent,
            pegaImc: function() {

                if(this.altura != 0){
                    var imc = this.peso / (this.altura * this.altura);
                    return imc;
                } else{

                    console("Não posso dividir por zero!");
                }
            }
        };    

        var imc = pacienteAtual.pegaImc();

        var tdImc = pacienteTr.getElementsByClassName("info-imc")[0]; 
        tdImc.textContent = imc;

        console.log(imc);
    });
}

var botao = document.getElementById("calcula-imcs");
botao.onClick = calculaTodosImcs;

Quando clico no botão não esta trazendo resultado nenhum, porem quando adiciono botao.onClick = calculaTodosImcs(); ele preenche automaticamente.

3 respostas

Oi Paulo, algum erro no console do navegador?

Meu chute seria que o botao esta nulo. Entao talvez algum problema com a busca pelo id aí

O console não apresentou erro, meu HTML segue abaixo.

<!doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Meus pacientes</title>
        <link rel="stylesheet" type="text/css" href="reset.css">
        <link rel="stylesheet" type="text/css" href="alura.css">
    </head>
    <body>
        <header>
            <div class="container">
                <h1>Meus pacientes</h1>
            </div>
        </header>
        <main class="container">
            <section>
                <h2>Meus pacientes</h2>
                <table>
                    <tr>
                        <th>Nome</th>
                        <th>Peso(kg)</th>
                        <th>Altura(m)</th>
                        <th>IMC</th>
                    </tr>
                    <tr class="paciente">
                        <td class="info-nome">Leonardo</td>
                        <td class="info-peso">57</td>
                        <td class="info-altura">1.67</td>
                        <td class="info-imc"></td>
                    </tr>
                    <tr class="paciente">
                        <td class="info-nome">Paulo</td>
                        <td class="info-peso">100</td>
                        <td class="info-altura">2.00</td>
                        <td class="info-imc"></td>
                    </tr>
                    <tr class="paciente">
                        <td class="info-nome">Stuart</td>
                        <td class="info-peso">120</td>
                        <td class="info-altura">1.80</td>
                        <td class="info-imc"></td>
                    </tr>
                    <tr class="paciente">
                        <td class="info-nome">Rafael</td>
                        <td class="info-peso">110</td>
                        <td class="info-altura">1.60</td>
                        <td class="info-imc"></td>
                    </tr>
                </table>
                <button id="calcula-imcs" class="botao ">Calcular Imcs</button>
            </section>
            <section>
                <h2>Adicionar novo paciente</h2>    
                <form>
                    <fieldset>
                        <label for="nome">Nome:</label>
                        <input id="campo-nome" type="text" placeholder="digite o nome do seu paciente">
                    </fieldset>
                    <fieldset class="campo-medio">
                        <label for="peso">Peso:</label>
                        <input id="campo-peso" type="text" placeholder="digite o peso do seu paciente">
                    </fieldset>
                    <fieldset class="campo-medio">
                        <label for="altura">Altura:</label>
                        <input id="campo-altura" type="text" placeholder="digite a altura do seu paciente">
                    </fieldset>
                    <button id="adicionar-paciente" class="botao bto-principal">Adicionar</button>
                </form>
            </section>
        </main>
        <script src="precorre.js"></script>
        <script src="calcula-imc.js"></script>
        <script src="imprime-nome.js"></script>
    </body>
</html>
solução!

Ah, agora vi o erro: onclick deveria ser minusculo