0

いくつかのボタンをランダムにクリックしたいだけで、Sum ボタンをクリックすると、クリックされたボタンの値の結果の合計が表示されます。Java スクリプトでこのコードが必要です。

<!DOCTYPE html>
<html>
<head>
<script>
var mynum = new Array(6);
var i = 0;

unction buttonClicked(obj) {
if (i < mynum.length) 
 mynum[i++] = obj.value; 
else alert("Array limit reached");
}

function sum() {
sumOfArray = 0;
for (j = 0; j < i; j++)
sumOfArray += parseInt(mynum[j++]);
alert("Sum = " + sumOfArray);
}

</script>
</head>
<body>


<p id="demo">Result</p>


button type="button" onclick="buttonClicked(2)">1</button>

<button type="button" onclick="buttonClicked(3)">2</button>
<button type="button" onclick="buttonClicked(3)">4</button>
<button type="button" onclick="buttonClicked(3)">8</button>


<button type="button" onclick="sum()">Sum</button>

</body>
</html> 
4

1 に答える 1

2

この行:

unction buttonClicked(obj) {

次のようにする必要があります。

function buttonClicked(obj) {

値を含むオブジェクトではなく、値を関数に送信しているため、次のようになります。

mynum[i++] = obj.value;

次のようにする必要があります。

mynum[i++] = obj;

配列に数値があるため、それらを解析しないでください。これ:

sumOfArray += parseInt(mynum[j++]);

次のようにする必要があります。

sumOfArray += mynum[j++];

補足: 使用するparseInt場合は、基数を 2 番目のパラメーターとして指定する必要があります。そうしないと、10 ではなく基数 8 を使用してゼロで始まる数値が解析されます。


おそらく、ボタンが表示するものに対応する関数に値を送信する必要があるため、次のようにします。

button type="button" onclick="buttonClicked(2)">1</button>
<button type="button" onclick="buttonClicked(3)">2</button>
<button type="button" onclick="buttonClicked(3)">4</button>
<button type="button" onclick="buttonClicked(3)">8</button>

次のようにする必要があります。

<button onclick="buttonClicked(1)">1</button>
<button onclick="buttonClicked(2)">2</button>
<button onclick="buttonClicked(4)">4</button>
<button onclick="buttonClicked(8)">8</button>
于 2013-06-03T11:22:02.367 に答える