![](/img/trans.png)
[英]How to sum the input field values and display it into html Table using Javascript?
[英]Javascript breaks when using values from HTML input field
我正在嘗試創建給定輸入的特定高度/寬度的網格。 如果我在下面的 canvas 中對高度和寬度進行硬編碼(在本例中為 10 和 5),它會完美運行
const canvasWindow = document.getElementById("canvas-window")
const height = document.getElementById("height")
const width = document.getElementById("width")
const generateCanvasBtn = document.getElementById("generate-canvas-btn")
generateCanvasBtn.addEventListener("click", () => {
const canvas = new Canvas(document.getElementById("canvas-window"), 10, 5);
canvas.generateCanvas();
})
這個例子打破了:
const canvasWindow = document.getElementById("canvas-window")
const height = document.getElementById("height")
const width = document.getElementById("width")
const generateCanvasBtn = document.getElementById("generate-canvas-btn")
generateCanvasBtn.addEventListener("click", () => {
const canvas = new Canvas(document.getElementById("canvas-window"), height.value, width.value);
canvas.generateCanvas();
})
任何想法可能是什么原因造成的? 如果我記錄 height.value 和 width.value 它得到的值就很好,所以我正在努力看看它與硬編碼有什么不同,如果這些值被正常讀取的話? 我得到的錯誤是:
canvas.js:18 未捕獲類型錯誤:無法在 Canvas.generateCanvas (canvas.js:18:33) 在 HTMLInputElement 處設置未定義的屬性(設置“0”)。 (pixelcreator.js:8:12)
這是包含錯誤引用的行的代碼:
class Canvas {
grid;
constructor(window, height, width) {
this.window = window;
this.height = height;
this.width = width;
}
generateCanvas() {
this.grid = new Array(this.height).fill(0).map(() => new Array(this.width).fill(0));
for (let i = 0; i < this.height; i++) {
const row = document.createElement("div");
row.classList.add('row');
this.window.appendChild(row);
for (let j = 0; j < this.width; j++) {
this.grid[i][j] = new Cell(row) // this is line 18 from the error
this.grid[i][j].createCell();
}
}
}
height.value
或width.value
可能是字符串類型。
嘗試這個:
new Canvas(document.getElementById("canvas-window"), parseInt(height.value), parseInt(width.value));
您直接使用輸入的值,它是一個字符串。 嘗試使用 parseInt(...) 將其解析為 integer
const canvasWindow = document.getElementById("canvas-window")
const height = document.getElementById("height")
const width = document.getElementById("width")
const generateCanvasBtn = document.getElementById("generate-canvas-btn")
generateCanvasBtn.addEventListener("click", () => {
const canvas = new Canvas(document.getElementById("canvas-window"), parseInt(height.value), parseInt(width.value));
canvas.generateCanvas();
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.