我有以下代码
var results = ["img", "some_class"];
for ( var i = 0; i <= results.length; i++ ){
if (results[i] === "input"){
elements = [];
} else if (results[i].indexOf("class") > -1 ){
className = results[i];
b = document.getElementsByClassName;
for ( var i = 0; i < b.length; i++ ){
elements.push(b[i]);
}
} else if (results[i].indexOf("id") > -1 ){
id = results[i];
searchId = document.getElementById(id);
elements.push(searchId);
}
}
我试图检查results
数组中的任何元素是否包含字符串&#34; class&#34;或&#34; id&#34;但我得到Uncaught TypeError: Cannot read property 'indexOf' of undefined
你可以看到results
数组确实包含&#34; class&#34;在第二个元素内,但我的代码不是在打球。
非常感谢任何帮助:)
答案 0 :(得分:0)
将<=
语句中的for
替换为<
。
在您的特定情况下,results.length
为3,因此在最后一次迭代中,您尝试访问results[3]
undefined
并导致出现错误。