为什么这段代码不起作用?到目前为止,我只是将其作为输入工作。我需要它作为标签或跨度工作。我需要标签在每次点击时计算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>
答案 0 :(得分:6)
您的increase()
功能应如下所示:
function increase() {
a++;
document.getElementById("text").innerHTML = a;
}
不起作用的原因是label
或span
没有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;