我的标签不算数

时间:2016-01-08 15:08:10

标签: javascript html

为什么这段代码不起作用?到目前为止,我只是将其作为输入工作。我需要它作为标签或跨度工作。我需要标签在每次点击时计算1个数字。

<html>
<head>
    <script type="text/javascript">
        var a = 1;

        function increase () {
            document.getElementById("text").value=a;
            a=a+1;
        }            
    </script>
</head>

<body>
    <button type="button" onclick="increase()">show</button>
    <label type="text" id="text">0</label>
</body>

3 个答案:

答案 0 :(得分:6)

您的increase()功能应如下所示:

function increase() {
    a++;
    document.getElementById("text").innerHTML = a;
}

不起作用的原因是labelspan没有value属性。您应该使用innerHTML代替。

Value属性仅出现在<input>标记上。对于其他所有代码(例如<span><div><label>),您应该使用innerHTML

修改

为了增加清晰度,上面的代码只是increment()函数。整个代码应如下所示:

var a = 0;

function increase() {
    a++;
    document.getElementById("text").innerHTML = a;
}

考虑到John Hascall的评论,a++可以放在document.getElementById("text").innerHTML = a之后。

var a = 0;

function increase() {
  a++;
  document.getElementById("text").innerHTML = a;  
}
<button onclick="increase()">Click</button>
<label id="text">0</label>

答案 1 :(得分:0)

您需要使用document.getElementById("text").innerHTML=a,因为<label>的值未定义其内部文字。

您的示例将如下所示:

<html>
<head>
    <script type="text/javascript">  
        var a = 1;          

        function increase() {
            a++;
            document.getElementById("text").innerHTML = a;                 
        }            
    </script>
</head>

<body>
    <button type="button" onclick="increase()">show</button>
    <label type="text" id="text">0</label>
</body>

答案 2 :(得分:0)

试试这个fiddle

我试过parseInt()

 var a = parseInt(document.getElementById("text").innerHTML);

 a++;
 console.log(a);
 document.getElementById("text").innerHTML = a;