HTML中的Javascript增量值
我对JavaScript一无所知。我试图在HTML中增加一个变量,但它不起作用。我的语法错了吗HTML中的Javascript增量值,javascript,increment,Javascript,Increment,我对JavaScript一无所知。我试图在HTML中增加一个变量,但它不起作用。我的语法错了吗 <script> function rps() { computerScore.value++; computerScore.innerHTML = computerScore.value; } </script> <html> <b>computer score:</b><p id="computerScore" value=
<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>
函数rps(){
computerScore.value++;
computerScore.innerHTML=computerScore.value;
}
计算机分数:-
去
值
不是标记的有效属性
我想你想要的是:
function rps() {
var computerScore = document.getElementById('computerScore');
var number = computerScore.innerHTML;
number++;
computerScore.innerHTML = number;
}
computerScore:0
有几个问题:
- 在大多数浏览器上,不能将元素id作为全局属性
- 属性并不总是元素的属性(值只是输入元素的属性)
您可以这样做:
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;
}
有几个问题:
computerScore
什么都不是;您可能需要document.getElementById('computerScore')
上的值
无效。使用数据值
或其他东西(或
请注意,dataset.value
是一个字符串,但是++
将其强制为整数
我还建议使用事件绑定而不是事件属性,例如按钮。addEventLister
不要尝试,它有一个函数用于此。即使您寻找JS解决方案,也值得注意的是您可以!应该在DOMready之后调用getElementById
,即在rps
@mplungjan数据集中
不符合旧的IE标准,应该使用getAttribute
实际上数字是一个字符串,直到++所以也许数字=+computerscore.innerHTML更正确你在增加innerText值时没有看到它是否是一个实际的数字?我认为DOM不能区分BTW数字和字符串。
var elm = whatever //assuming you select your element using the DOM
// update value
elm.innerHTML = +elm.innerHTML + 1;
var computerScore = document.getElementById('computerScore');
function rps() {
computerScore.dataset.value++;
computerScore.innerHTML = computerScore.dataset.value;
}
var elm = whatever //assuming you select your element using the DOM
// update value
elm.innerHTML = +elm.innerHTML + 1;
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;
}