代码之家  ›  专栏  ›  技术社区  ›  Sviat Kuzhelev

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

  •  1
  • Sviat Kuzhelev  · 技术社区  · 8 年前

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

    我想得到 标记a 元素,但

    <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 回复  |  直到 8 年前
        1
  •  1
  •   Emre Kabaoglu    8 年前

    你应该把条件 < ;

    for (let i = 0; i < a.length; i++)
    
        2
  •  1
  •   Shivanand Patil    8 年前

    你需要解决这个问题

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

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

    由于索引超出界限,因此给出了错误