js用document.getElementById时要注意!

出自:https://www.cnblogs.com/yi-mi-yangguang/p/6517166.html

<!DOCTYPE html>
<html lang="en">
<head>
 <script src="http://code.jquery.com/jquery-1.11.3.js"></script> 
    <meta charset="UTF-8">
    <title>Document</title>
        
</head>
<body>
<script type="text/javascript">
// jQuery(document).ready(function($) {
//     $('li:first').append('<p>新的节点</p>');
// });
window.onload=function(){
var rightdiv = document.getElementById('nav');
//这里用id获取不到的原因是,要先执行到下面的li时,才能获取到,而document.createElement是不需要网页的执行就可以直接继续下去的,从而不会包appendChild属性值为空的情况
     var rightaaron = document.createElement("p");

    
     rightaaron.innerHTML = "动态创建DIV元素节点";

     //2个div合并成包含关系
     rightdiv.appendChild(rightaaron)

     //绘制到页面body
     document.body.appendChild(rightdiv)
};


</script>
<ul >
    <li id='nav'>
        <p href="">旧的节点</p>
    </li>
    <li>
        <p href="">旧的节点</p>
    </li>
</ul>

</body>
</html>

因为var rightdiv = document.getElementById('nav');这句话必须要等到
<ul >
    <li id='nav'> <p href="">旧的节点</p> </li> <li> <p href="">旧的节点</p> </li> </ul>这段代码执行到时才能够获取到id,所以需要加个winodw.onload来获取
网页中的javaScript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况

直接用document.createElement()是不需要等加载的就可以直接执行。

 
复制代码

猜你喜欢

转载自blog.csdn.net/kangkang_hacker/article/details/80842015