关于js创建元素问题。

<script>
arr=["ninhao","dajiahao","hi"];
var ol=document.querySelector("#ol");
//alert(123)
for( var i=0; i<arr.length; i++){
    var oli=document.createElement("li");
        oli.innerHTML=arr[i];
        ol.appendChild(oli);
    }

</script>
<ol id="ol">

</ol>

我想把数组arr的值都出来放到有序列表中,但是一直提示不能读取appendChild,请问是什么原因呢,谢谢!
阅读 1.9k
2 个回答

浏览器就会按顺序先运行<script>中的js脚本,然后读取<ol>内容渲染页面,也就是说js执行的时候页面上还不存在ol元素。解决办法是把<script>放在<ol>后面,或者使用window.onload

<script>
window.onload = function() {
    arr=["ninhao","dajiahao","hi"];
    var ol=document.querySelector("#ol");
    //alert(123)
    for( var i=0; i<arr.length; i++){
        var oli=document.createElement("li");
            oli.innerHTML=arr[i];
            ol.appendChild(oli);
    }
}
</script>
<ol id="ol">
</ol>

script标签连带其内容,放到ol标签的后面

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题