我试图从 document.getElementById 中获取一个数字,以使用比较运算符在 if / else 语句中作为实数读取(例如:points < 40)。下面是我尝试用w3school的工具来帮助完成的一个例子。
我理解Javascript根据数据类型,运算符和数字执行某些操作。下面是我开始使用的原始代码,但我尝试了不同的变体,请参见下面右侧的数据类型结果。我使用算术来找出当我的元素的id号进入变量时发生了什么,最好的结果是 NaN 。
如何让HTML标记中的数字被Javascript的 document.getElementById 脚本运算符识别?
myFolder.Items.sort

编辑:所需要的只是一个" .innerHTML"除了我的var(在分号之前添加)。
下面的固定代码:
<!DOCTYPE html>
<html>
<body>
<span id="points">39</span> is <span id="outcome"></span>
<script>
var points = document.getElementById("points"); // [object HTMLSpanElement]
//var points = +document.getElementById("points"); // NaN
//var points = parseInt(document.getElementById("points")); // NaN
//var points = Number(document.getElementById("points")); // NaN
if (points < 40) {document.getElementById("outcome").innerHTML = "LESS THAN 40";}
else {document.getElementById("outcome").innerHTML = "40 or GREATER";}
</script>
</body>
</html>
&#13;
答案 0 :(得分:3)
获取元素(您正在这样做):
var points = document.getElementById("points");
获取元素的文本:
var text = points.innerHTML; // or .textContent or .innerText
可以通过各种方式将其转换为数字,例如parseInt
:
var num = parseInt(text, 10); // 10 = base 10 (decimal)
// or
var num = parseFloat(text);
// or
var num = +text;
// or
var num = Number(text); // Just like the unary +
My answer here详细介绍了各种选项(parseInt
,parseFloat
,一元+
,Number
)。
然后num
包含数字。
当然,您可以结合以下步骤:
var num = +document.getElementById("points").innerHTML;
答案 1 :(得分:0)
document.getElementById(...)
返回DOM Element,您必须访问该元素的属性才能获得该号码。在这种情况下,由于您正在处理<span>
元素,因此您可以使用.textContent
来获取其文本内容。
以下是一个例子:
var x = parseInt(document.getElementById("points").textContent);