搜尋

首頁  >  問答  >  主體

javascript - JS程式碼編譯成功,但控制台報錯,是什麼問題?

<ul class="ul"><li>red</li>
    <li>1</li>
    <li>1</li>
    <li>1</li>
</ul>
<ul class="ul ul-2"><li>red</li>
    <li>1</li>
    <li>1</li>
    <li>1</li>
</ul>
<script type="text/javascript">
    var ulArry = document.getElementsByClassName("ul");
    for (var i in ulArry) {
        ulArry[i].firstChild.style.color = "#FF0000";
    }
</script>


# li的顏色已經改變了,但是為什麼控制台還報錯?

大家讲道理大家讲道理2707 天前890

全部回覆(5)我來回復

  • typecho

    typecho2017-07-05 11:00:11

    ulArry是NodeList對象,for in取得的不只是兩個Dom節點,還有length,item(),namedItem() 。所以運行到length時就報錯了。
    你可以在循環中印出 ulArry[i]看看

    回覆
    0
  • 迷茫

    迷茫2017-07-05 11:00:11

    看圖可以知道為什麼報錯,但是至於為什麼 in 裡面會有一個length 這個i值 得等大神解答

    回覆
    0
  • 迷茫

    迷茫2017-07-05 11:00:11

    把程式碼放到$(function(){})裡試試

    回覆
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-07-05 11:00:11

    for in會報錯 for不會,第二個ul的class不只是一個哦,有兩個,建議getElementsByTagName

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-07-05 11:00:11

    請在確定文件載入完後再操作

    回覆
    0
  • 取消回覆