V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
laughingla
V2EX  ›  程序员

初学 javascript, window.onlaod 没反应,什么原因那!!!求大神帮分析代码

  •  
  •   laughingla · 2015-01-07 21:46:49 +08:00 · 3448 次点击
    这是一个创建于 3589 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charsrt="utf-8"/>
    <title>laughing2</title>
    </head>
    <body>
    <h1>Snapshot</h1>
    <ul>
    <li><a href="images/1.jpg" onclick="showPic(this);return false" title="no.1">image1</a>
    </li>
    <li><a href="images/2.jpg" onclick="countBody(this);return false" title="no.2">image2</a>
    </li>
    <li><a href="images/3.jpg" onclick="showPic(this);return false" title="no.3">image3</a>
    </li>
    <img id="placeholder" src="images/4.jpg" alt="no.4"/>
    </ul>
    <script type="text/javascript" src="scripts/countBody.js"></script>
    <script type="text/javascript" src="scripts/showPic.js"></script>

    </body>
    </html>


    countBody.js如下:

    function countBodyChildren(){
    var body_element = document.getElementByTagName("body")[0];
    var count = body_element.childNodes.length;
    alert(count);
    }
    window. onload = countBodyChildren;
    18 条回复    2015-01-08 11:20:37 +08:00
    laughingla
        1
    laughingla  
    OP
       2015-01-07 21:57:54 +08:00
    唉。看来是等不到答案了……
    sneezry
        2
    sneezry  
       2015-01-07 22:00:53 +08:00 via iPhone
    window.onload是所有资源都加载完才触发,有一个没完或者失败都不行
    mgnya
        3
    mgnya  
       2015-01-07 22:01:52 +08:00   ❤️ 1
    var body_element = document.getElementByTagName("body")[0];

    var body_element = document.getElementsByTagName("body")[0];

    这样?
    sneezry
        4
    sneezry  
       2015-01-07 22:02:28 +08:00 via iPhone
    不是onload的问题,而是getElementsByTagName
    Twinkle
        5
    Twinkle  
       2015-01-07 22:03:42 +08:00
    getElementsByTagName
    reeco
        6
    reeco  
       2015-01-07 22:05:31 +08:00
    getElementsByTagName
    刚打完发现楼上已经回答了.....
    reeco
        7
    reeco  
       2015-01-07 22:06:07 +08:00
    另外window.onload 中间是没空格的
    loading
        8
    loading  
       2015-01-07 22:06:48 +08:00 via Android
    把onload调用的函数改成 alert(‘a’)

    其他每行都alert,一个b,一个c,你就知道跑到哪里出问题了,这是我刚学js用的方法,那时还没太多调试工具,控制台就听都没听过。

    方法很笨,但有效。
    进阶是alert变量或type
    laughingla
        9
    laughingla  
    OP
       2015-01-07 22:06:59 +08:00
    @mgnya
    @sneezry
    @Twinkle
    哈哈,等了好久等不到答案,我自己又检查了一遍,也发现漏了个s。感谢大家。
    loading
        10
    loading  
       2015-01-07 22:08:13 +08:00 via Android
    @mgnya
    @sneezry
    @reeco
    @reeco
    别光送鱼哦!
    laughingla
        11
    laughingla  
    OP
       2015-01-07 22:10:24 +08:00
    @loading 恩,了解。感觉有点像C里面的printf 找不到错的时候确实很有效。
    loading
        12
    loading  
       2015-01-07 22:12:42 +08:00 via Android
    @laughingla chrome的开发者工具,控制台,很方便,可以了解下,你这个错误直接报的。
    laughingla
        13
    laughingla  
    OP
       2015-01-07 22:16:41 +08:00
    @loading 恩,还有为什么弹窗的结果数字是9,而书上说数字应该很大?
    sneezry
        14
    sneezry  
       2015-01-07 22:20:14 +08:00
    @loading 其实感觉有的时候真不知道该帮忙点到哪里,比如lz这个问题,如果让我深入来说,肯定不建议使用window.onload。所以问题还是得自己慢慢领悟,直接完全嚼碎了未必都能消化得了。
    loading
        15
    loading  
       2015-01-07 22:22:54 +08:00 via Android
    @laughingla 你知道函数干了什么吗?你自己数数看
    loading
        16
    loading  
       2015-01-07 22:26:57 +08:00 via Android
    @sneezry 每个人成长的路都不同,能帮就帮。共勉。
    Jserqi
        17
    Jserqi  
       2015-01-07 22:50:35 +08:00
    window.onlaod -> window.onload
    fengliu222
        18
    fengliu222  
       2015-01-08 11:20:37 +08:00
    getElement[s]ByTagName
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4599 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 05:35 · PVG 13:35 · LAX 21:35 · JFK 00:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.