为循环中的最后一个元素获取错误“'getAttribute'of undefined”

时间:2018-01-18 12:22:03

标签: javascript html loops

无法理解为什么我为循环中的最后一个元素收到错误?我在SOF上看到了其他问题,但我没有找到答案。

我正在尝试获取标记元素列表,但

<script>

    let a = document.body.getElementsByTagName('a');

    function getList(list) {

        let ii;
        for (let i = 0; i , a.length; i++) {

            if (a[i].getAttribute('href')) {
                ii = a[i].getAttribute('href');
                console.log(ii); // get the list of elements that contains attr "href". 
                                 // and an Error for the last element -
                                 // error 'getAttribute' of undefined.
            }
        }

        return ii;
    }

    getList(); // start for test

</script>


<body>
    <ul>
      <li><a href="http://google.com">http://google.com</a></li>
      <li><a href="/tutorial">/tutorial.html</a></li>
      <li><a href="local/path">local/path</a></li>
    </ul>
</body>

2 个答案:

答案 0 :(得分:1)

你应该把条件<;

for (let i = 0; i < a.length; i++)

答案 1 :(得分:1)

您需要解决此问题

 for (let i = 0; i , a.length; i++)

for (let i = 0; i < a.length; i++)

由于索引超出范围而给出错误