未捕获的TypeError:无法读取属性' indexOf' for for

时间:2015-09-07 17:07:11

标签: javascript

我有以下代码

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;在第二个元素内,但我的代码不是在打球。

非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

<=语句中的for替换为<

在您的特定情况下,results.length为3,因此在最后一次迭代中,您尝试访问results[3] undefined并导致出现错误。