7

私は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>
4

5 に答える 5

14

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>
于 2013-03-07T20:16:54.013 に答える
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;
}
于 2013-03-07T20:17:56.203 に答える
0

いくつかの問題:

  1. computerScoreなんでもない; あなたはおそらく欲しいdocument.getElementById('computerScore')
  2. value<p>は有効ではありません。代わりに or 何かを使用data-valueします (または

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

dataset.valueは文字列ですが++、整数に強制されることに注意してください。

http://jsfiddle.net/vqPKZ/

イベント属性ではなくイベントバインディングを使用することもお勧めします。button.addEventLister

于 2013-03-07T20:19:54.547 に答える
-3
var elm = whatever //assuming you select your element using the DOM
// update value
elm.innerHTML = +elm.innerHTML + 1;
于 2015-02-17T17:57:40.287 に答える