getElementById returns NaN

getElementById returns NaN

考虑我的代码的以下示例片段。我试过 parseInt 没有运气。在这里,我希望 javascript 在单元格 PICweight 中设置一个数字,然后稍后检索它并将其放在不同的单元格 totalcabin 中。你可以看到这里,我想将数字设置为1,但是当代码运行时,它returns NaN in totalcabin

<td id="PICweight" type="tel"></td>
<script>
    window.onchange = function setfields() {

        document.getElementById("PICweight").innerHTML = 1;
        var PICweight = document.getElementById("PICweight").value;

        var totalcabin = document.getElementById("totalcabin");
        totalcabin.innerHTML = +PICweight
    }
</script>

td 个元素没有值 属性。当您在普通 html 元素(非输入元素)上使用 .value 时,您最终会得到 undefined。稍后,您使用 +undefined 隐式转换为一个数字,这会导致 NaN 和您随后的观察结果。

您应该使用 .textContent 而不是值来获取 td 元素内的文本。

var PICweight = document.getElementById("PICweight").textContent;