ここにオブジェクトコンストラクター関数があります:
function Box (id, name, color, number, coordinates) {
this.id = id;
this.name = name;
this.color = color;
this.number = number;
this.coordinates = coordinates;
this.add = function(howMany) {
}
}
ここに、ユーザーがラジオボタンで選択した数値(5、10、または15)を取得する関数の一部があります。
function getBoxValues() {
var nameInput = document.getElementById("name");
var name = nameInput.value;
var numbersArray = dataForm.elements.amount;
for (var i = 0; i < numbersArray.length; i++) {
if (numbersArray[i].checked) {
number = numbersArray[i].value;
if (name == null || name == "") {
alert("Please enter a name for your box");
return;
}
else {
var newbox = new Box("id", name, color, number, "coordinates");
boxes.push(newbox);
addBox(newbox);
var data = document.getElementById("dataForm");
data.reset();
}
後で、この関数を使用してページにボックスを追加します。
function addBox(newbox) {
var scene = document.getElementById("scene");
var div = document.createElement("div");
div.innerHTML += newbox.name;
var x = Math.floor(Math.random() * (scene.offsetWidth-101));
var y = Math.floor(Math.random() * (scene.offsetHeight-101));
div.style.left = x + "px";
div.style.top = y + "px";
scene.appendChild(div);
newbox.add(number);
for (var i = 0; i < howMany; i++) {
console.log("added");
addBox(newbox);
}
}
私の問題は、ユーザーがラジオボタンで選択したのと同じ数のボックスをWebページに追加したいということです。これまでのところ、コンソールログには、「number」の値がループスルーされた回数の「added」が示されています。しかし、数値の値に対して新しいボックスが作成されるようにコードを変更する方法がわかりません。初心者ですので、ご迷惑をおかけしましたことをお詫び申し上げます。助けていただければ幸いです。