javascript - 多次调用自身的函数的javascript递归问题
问题描述
我有 2 个表,一个在一个之上,下面的一个有每个单元格 ID,比如“colxrowy”,上面一个是“OverColxrowy”,其中 x 和 y 是数字。
我从上面创建了一个函数,如果下表中没有任何内容,它应该从上面清除表格中单元格的背景颜色,但如果它永远不会首先通过。我应该怎么办?
function clearBlankAround(cellId) {
var col=0,row=0;
col=cellId.charAt(3);
row=cellId.charAt(7);
document.getElementById("OverCol"+col+"row"+row).style.backgroundColor="";
cell00 = document.getElementById("col" + (col - 1) + "row" + (row - 1));
cell01 = document.getElementById("col" + col + "row" + (row - 1));
cell02 = document.getElementById("col" + (col + 1) + "row" + (row - 1));
cell10 = document.getElementById("col" + (col - 1) + "row" + row);
cell12 = document.getElementById("col" + (col + 1) + "row" + row);
cell20 = document.getElementById("col" + (col - 1) + "row" + (row + 1));
cell21 = document.getElementById("col" + col + "row" + (row + 1));
cell22 = document.getElementById("col" + (col + 1) + "row" + (row + 1));
var x=0;z=0;
for(x=-1;x<2;x++)
for(z=-1;z<2;z++)
if(document.getElementById("OverCol"+(col+x)+"row"+(row+z)))
document.getElementById("OverCol"+(col+x)+"row"+(row+z)).style.backgroundColor=""
if(cell00&&cell00.innerHTML=="") clearBlankAround(cell00.id) //"first if"
if(cell01&&cell01.innerHTML=="") clearBlankAround(cell01.id)
if(cell02&&cell02.innerHTML=="") clearBlankAround(cell02.id)
if(cell10&&cell10.innerHTML=="") clearBlankAround(cell10.id)
if(cell12&&cell12.innerHTML=="") clearBlankAround(cell12.id)
if(cell20&&cell20.innerHTML=="") clearBlankAround(cell20.id)
if(cell21&&cell21.innerHTML=="") clearBlankAround(cell21.id)
if(cell22&&cell22.innerHTML=="") clearBlankAround(cell22.id)
}
解决方案
推荐阅读
- java - 在 JSON 响应中获取实体而不是其 ID
- javascript - 在 Chrome DevTools 中顺序注入和运行 jQuery
- node.js - 我的网站是否可以在其他网站上执行请求?
- regex - 如何在 Swift 中验证类似这样的字符串(例如:27˚)。值是随机的?
- github-pages - 如何在我无法再访问存储库时删除 github 页面 CNAME
- regex - 替换 Google Data Studio 中字符串中的多个空格(正则表达式)
- javascript - 无法将对象键作为局部变量传递给函数
- python - 在 Python 中绘制时间线
- r - lapply 用于多个文件
- r - 有没有办法使用与 [#] 不同的字符来评论您的代码?