我的代码有什么问题?(Whats wrong with my code? I want to find the row length of a specific row)

我无法获取我的代码来识别特定行并告诉我它的长度。 当我运行它时,它返回“未定义”理想情况下,我希望能够调用特定行中的特定单元格以便放入每个单元格中的日期编号,但是现在我只是想返回行。

document.getElementById("Show Calendar").addEventListener( 'click', function calendarMaker() { var table = document.getElementById("Calendar"); var date = new Date(); var currentMonth = date.getMonth(); var currentDay = date.getDay(); var months = ["January", "Febuary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var days =["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; var row =0; var cell =0; for( var i=0; i<6;i++) { row = table.insertRow(i); for(var a=0; a<7;a++) { cell = row.insertCell(a); cell.contentEditable = true; for(b=0;b<7;b++) { if(i===0 &&a==b) { cell.innerHTML = days[b]; } } } } var x = document.getElementById("Calendar").rows[0].length; document.getElementById("rowCount").innerHTML = x; });

I cannot get my code to identity a specific row and tell me its length. When I run this, it returns "undefined" Ideally, I want to be able to call specific cells in specific rows in order to put the day number that goes in each cell, but right now I am just trying to return the length of the row.

document.getElementById("Show Calendar").addEventListener( 'click', function calendarMaker() { var table = document.getElementById("Calendar"); var date = new Date(); var currentMonth = date.getMonth(); var currentDay = date.getDay(); var months = ["January", "Febuary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var days =["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; var row =0; var cell =0; for( var i=0; i<6;i++) { row = table.insertRow(i); for(var a=0; a<7;a++) { cell = row.insertCell(a); cell.contentEditable = true; for(b=0;b<7;b++) { if(i===0 &&a==b) { cell.innerHTML = days[b]; } } } } var x = document.getElementById("Calendar").rows[0].length; document.getElementById("rowCount").innerHTML = x; });

最满意答案

如果你注意到,x是未定义的。 您在键入时尝试访问第一行的长度

var x = document.getElementById("Calendar").rows[0].length;

那是因为你正在访问第一行的长度。

相反,你应该使用

var x = document.getElementById("Calendar").rows.length;

然后,您可以访问行中的每个单元格,如下所示

var x = document.getElementById("Calendar").rows.length; for (var i = 0; i < x; i++) { var row = document.getElementById("Calendar").rows.item(i); for (var j = 0; j < row.cells.length; j++) { var col = row.cells.item(j); col.innerText = i * j; } }

看工作小提琴

If you notice, x is undefined. You are trying to access length of first row when you type

var x = document.getElementById("Calendar").rows[0].length;

That is because you are accessing length of first row.

instead, you should use

var x = document.getElementById("Calendar").rows.length;

You can then access each cell in row like following

var x = document.getElementById("Calendar").rows.length; for (var i = 0; i < x; i++) { var row = document.getElementById("Calendar").rows.item(i); for (var j = 0; j < row.cells.length; j++) { var col = row.cells.item(j); col.innerText = i * j; } }

See working fiddle

更多推荐