按ID获取元素不起作用

Luk*_*uke 2 javascript jquery

Verry简单的问题:

我有这个HTML:

<div id="test" style="border: 1px solid red; width: 300px;">
    Some text
</div>
Run Code Online (Sandbox Code Playgroud)

这个JS在一个单独的.js文件中:

$('#test').hover(function(){
    alert('it's working');
});
Run Code Online (Sandbox Code Playgroud)

我没有从Fire Bug中得到任何错误,我在google上搜索了很多.请帮忙:为什么我的代码不起作用?

提前致谢

Cas*_*ule 5

您需要等到DOM加载,否则,您的javascript将在#test甚至存在之前运行.您可以通过将代码包装在ready函数中来实现,如下所示:

$(document).ready( function() {
    $('#test').hover(function(){
        alert("it's working");
    });
};
Run Code Online (Sandbox Code Playgroud)

这是一个棘手的问题,很容易被忽视,因为你不会通过操作空选择实际上从jQuery中获得错误.

或者,您可以简单地将脚本移动到页面底部,以便在其余DOM加载后执行,但我的偏好是以这种方式处理它.