我是JavaScript新手。我试图在HTML中增加一个变量,它不起作用。我的语法错了吗?
<script>
function rps() {
computerScore.value++;
computerScore.innerHTML = computerScore.value;
}
</script>
<html>
<b>computer score:</b><p id="computerScore" value="0">-</p>
<button type="button" onclick="rps()">Go</button><br>
</html>
答案 0 :(得分:9)
value
不是<p>
代码的有效属性。
我想你想要这样的东西:
function rps() {
var computerScore = document.getElementById('computerScore');
var number = computerScore.innerHTML;
number++;
computerScore.innerHTML = number;
}
...
<b>computer score:</b><p id="computerScore">0</p>
答案 1 :(得分:1)
一些问题:
你可以这样做:
function rps() {
// fetch the element :
var element = document.getElementById('computerScore');
// get the attribute, parse it and increment it :
value = parseInt(element.getAttribute('value'), 10)+1;
// stores the incremented value :
element.setAttribute('value', value);
// and change the innerHTML (conversion to string is implicit)
element.innerHTML = value;
}
答案 2 :(得分:0)
几个问题:
computerScore
什么都不是;你可能想要document.getElementById('computerScore')
value
上的<p>
无效。请改用data-value
或其他内容(或var computerScore = document.getElementById('computerScore');
function rps() {
computerScore.dataset.value++;
computerScore.innerHTML = computerScore.dataset.value;
}
请注意,dataset.value
是一个字符串,但++
将其强制转换为整数。
我还建议使用事件绑定而不是事件属性,例如button.addEventLister
答案 3 :(得分:0)
The best option will be to pass in an event object from the rps() method in the HtML, like this: rps(event).
Then retrieve it from the Javascript method like this:
function rps(event) {
var computerScore = event.CurrentTarget.innerText;
computerScore++;
computerScore = number;
}
答案 4 :(得分:-3)
var elm = whatever //assuming you select your element using the DOM
// update value
elm.innerHTML = +elm.innerHTML + 1;