JavaScript中forEach循环内字符串比较始终为假无控制台输出如何解决
问题原因
你遍历的occupation是纯字符串数组,每一项遍历得到的occ本身就是字符串值,不存在DOM元素才有的textContent属性:
- 读取
occ.textContent得到的是undefined - 后续执行
undefined.toLowerCase()会直接抛出类型错误,代码执行中断,自然不会进入后续的判断逻辑,也没有对应日志输出
修复方案
直接用遍历得到的字符串值即可,不需要额外读取textContent:
window.addEventListener('load', function() { let occupation = ["urologist", "urologist", "staff", "nurse", "surgeon"] occupation.forEach(function(occ) { // 直接使用occ本身,它就是字符串值 let bc = occ.toLowerCase(); chkfun(bc) }) function chkfun(val) { if (val == "urologist") { console.log("urologist") } if (val == "surgeon") { console.log("surgeon") } if (val == "staff") { console.log("staff") } if (val == "nurse") { console.log("nurse") } } }, false);
内容的提问来源于stack exchange,提问作者Philip Savarirayan
相关产品推荐
相关产品推荐

