如何修复querySelectorAll调用时出现的无效CSS选择器问题
问题原因
你代码里的querySelectorAll选择器写法错误,直接把变量名count写进了选择器字符串里,浏览器会把它识别为固定字符串count,而不是你定义的count变量的实际数值,自然会报选择器无效的错误。
修复方案
把选择器改成字符串拼接或者模板字符串的形式,把count变量的实际值拼进去即可,两种常用写法如下:
- 模板字符串写法(ES6+环境支持,写法更简洁):
var mycell = document.querySelectorAll(`.target table:nth-child(${count})`);
- 字符串拼接写法(兼容旧版本运行环境):
var mycell = document.querySelectorAll(".target table:nth-child(" + count + ")");
额外注意事项
你当前代码还存在一个潜在风险:case 3/case4/case7、case2/case5/case9分支中,判断不通过时直接递归调用correct(tier, reihe, spalte),三个参数和当前调用完全一致,会触发无限递归最终导致栈溢出报错,需要调整递归传入参数或者修改判断逻辑避免死循环。
内容的提问来源于stack exchange,提问作者Swordswoman69
相关产品推荐
相关产品推荐

