如何获得Javascript" document.getElementById"脚本运营商?

时间:2018-01-29 16:05:26

标签: javascript

我试图从 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;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

  1. 获取元素(您正在这样做):

    var points = document.getElementById("points");
    
  2. 获取元素的文本:

    var text = points.innerHTML; // or .textContent or .innerText
    
  3. 可以通过各种方式将其转换为数字,例如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详细介绍了各种选项(parseIntparseFloat,一元+Number)。

  4. 然后num包含数字。

    当然,您可以结合以下步骤:

    var num = +document.getElementById("points").innerHTML;
    

答案 1 :(得分:0)

document.getElementById(...)返回DOM Element,您必须访问该元素的属性才能获得该号码。在这种情况下,由于您正在处理<span>元素,因此您可以使用.textContent来获取其文本内容。

以下是一个例子:

var x = parseInt(document.getElementById("points").textContent);