HTML中的Javascript增量值

时间:2013-03-07 20:13:55

标签: javascript increment

我是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>

5 个答案:

答案 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)

一些问题:

  • 在大多数浏览器中,您无法通过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;
}

答案 2 :(得分:0)

几个问题:

  1. computerScore什么都不是;你可能想要document.getElementById('computerScore')
  2. value上的
  3. <p>无效。请改用data-value或其他内容(或

  4. var computerScore = document.getElementById('computerScore');
    function rps() {
        computerScore.dataset.value++;
        computerScore.innerHTML = computerScore.dataset.value;
    }
    

    请注意,dataset.value是一个字符串,但++将其强制转换为整数。

    http://jsfiddle.net/vqPKZ/

    我还建议使用事件绑定而不是事件属性,例如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;