javascript - JS程式碼編譯成功,但控制台報錯,是什麼問題?
大家讲道理
大家讲道理 2017-07-05 10:58:11
0
5
907
<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的顏色已經改變了,但是為什麼控制台還報錯?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(5)
typecho

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

迷茫

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

迷茫

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

扔个三星炸死你

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

我想大声告诉你

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板