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

O uso de textContent


var tdNome = document.getElementById("nome-2");
var tdPeso = document.getElementById("peso-2");
var tdAltura = document.getElementById("altura-2");


paciente = { 
    "peso" : tdPeso.textContent, 
    "altura" : tdAltura.textContent,
    "nome" : tdNome.textContent
    }

    if (paciente.altura != 0) {
        //altura > 0
        var imc = paciente.peso/(paciente.altura*paciente.altura);

        //var tdImc = document.getElementById("imc-2").textContent;
        //tdImc.textContent = imc;

        var tdImc = document.getElementById("imc-2");
        tdImc.textContent = imc;

        console.log(imc);
    }
    else {
        console.log("Nao se pode dividir por 0");
        //nao faz sentido dividir por altura negativa
    }


Neste codigo que compartilhei quero que percebam estas linhas 

        //var tdImc = document.getElementById("imc-2").textContent;
        //tdImc.textContent = imc;

        var tdImc = document.getElementById("imc-2");
        tdImc.textContent = imc;


As duas linhas comentadas foram as que nao funcionaram no projeto, a forma abaixo delas funcionou... 


Forma 1:

Bem aqui: 

    //var tdImc = document.getElementById("imc-2").textContent;

Eu pego tag inteira, mas ja filtraria o conteúdo  e guardaria na variavel, ou seja na primeira vez seria vazio.


E aqui: 
    //tdImc.textContent = imc;

Pego tdimc.incovando o metodo textContent do js e passando valor imc para escrever lá, mas nao funciona.


Forma 2: 

Primeiro pega toda a tag:
        var tdImc = document.getElementById("imc-2");

Em seguida extrai o conteudo e já joga la dentro o valor de imc
        tdImc.textContent = imc;


===================================================

Enfim testei as duas formas e nada da primeira funcionar,  alguem saberia dizer o porque ?


Valeu gente.
2 respostas
solução!

Ao fazer:

var tdImc = document.getElementById("imc-2").textContent;
tdImc.textContent = imc;

A variável tdImc vira uma representação do que está dentro do td do html com id="imc-2" Ex:

<td id="imc-2">100</td>

O tdImc será uma string(pois o conteúdo html é texto) de valor 100, e não uma representação do textContent na qual voce pode alterar o valor. Para ficar mais claro, faça no console esses comandos, e tente colocar "tdImc." Verá que a função textContent não está no auto-complete, ja que tdImc não é um element

A funcionalidade dos métodos eu havia entendido, porem ele nao funcionou no codigo passando direto,

Extrai a string document.getElementById("nome-1");

​Leonardo​​

Extrai o texto dentro do elemento document.getElementById("nome-1").textContent; "Leonardo"

Mas valeu pela ajuda.