JS Prototype和我一起搞砸了

时间:2011-06-15 13:30:35

标签: javascript prototypejs

             

    <link rel="stylesheet" type="text/css" media="screen" href="style.css"/>
    <script type="text/javascript" src="prototype.js"></script>
    <script type="text/javascript">
        $('lol').update('Hi!');
    </script>

    <title>Memory Game</title>
</head>
<body>
    <h1 id="lol">Hello</h1>

</body>


足够简单。 什么都没发生,这就是FF在控制台中给我的东西:

$(“lol”)为空 [Break On Errors] $('lol')。update('嗨!'); index.html(第10行)

我错过了什么?

5 个答案:

答案 0 :(得分:2)

脚本在解析脚本元素时立即运行。由于脚本元素出现在lol之前,因此无法找到它。

将脚本移动到文档末尾,或者延迟执行某人(例如将其包装在函数中并将其附加到onload事件中)。

答案 1 :(得分:1)

如果您通过ID访问,我认为您应该添加#

$('#lol').update('Hi!');
编辑:抱歉,我以为你在使用jQuery。你需要把

<script type="text/javascript">
    $('lol').update('Hi!');
</script>

在页面底部。

答案 2 :(得分:0)

window.load = function() { $('lol').update('Hi!'); })

答案 3 :(得分:0)

在DOM加载方法上尝试跨浏览器兼容,这在文档加载时但在绘制页面之前触发:

<script>
document.observe("dom:loaded", function() {
  $('lol').update('Hi!');
});
</script>

您也可以使用简单的脚本标记而不是text / whateverscript。

答案 4 :(得分:0)

也许你错过了文件准备检查:

document.observe("dom:loaded", function() {
  $('lol').update('Hi!');
});

这里的jsFiddle示例:http://jsfiddle.net/qWzTp/1/