我想问一下getElementbyId

时间:2018-10-18 16:51:45

标签: javascript

在我的代码中,我想显示以下文本: “(用户)身高153厘米,体重37公斤。这算是体重不足”

我的代码如下。它不应该起作用,但是它除了名称之外还可以起作用。

function gogogo() {
    let x=document.getElementById("height").value/100;
    let y=document.getElementById("weight").value;

    let BMI=y/Math.pow(x,2);

    document.getElementById("output").innerText = Math.round(BMI*100)/100;

    let answer;
    if (BMI<18.5)
        answer = "Underweight";
    else if (BMI<=25)
        answer = "Normal";
    else if (BMI<=30)
        answer = "Obese";
    else
        answer = "Overweight";

    document.getElementById("answer").innerText = `"${name} is ${height.value} tall and ${weight.value} kilograms. That qualifies as ${answer}"`;
}

代替

document.getElementById("height")`

显然,人们可以简单地写:

height

出什么问题了?你们能帮我解决吗?

2 个答案:

答案 0 :(得分:0)

JavaScript遍历DOM并搜索未初始化的变量。如果找到与变量名相同的node的{​​{1}},则将变量作为对该id的引用。

示例

node

由于<div> <h1 id=title>My title</h1> <input type=text value="mi text" id=yourText /> </div> id出现在DOM树中,因此您可以直接调用它们(“虽然不建议”)。

所以,打电话给 ['title','yourText'],将返回“ title.innerText”。但是,调用ID不在DOM中的未初始化变量也会给您一个My title

答案 1 :(得分:0)

您可以尝试使用innerHTML代替innertext