4

jQuery 没有找到任何元素。alert($("#testbutton").length);每次显示 0。

难道我做错了什么?

我的 JS/jQuery 代码:

(function ($) {
    alert($("#testbutton").length);
}) (jQuery);

我的 HTML:

<html>
    <body>
        <div id="header">
            <div class="button" id="testbutton">Test</div>
        </div>
    </body>    
</html>
4

4 回答 4

6

当您的代码运行时,DOM 尚未准备好,因此该元素不存在。你是不是打算这样做(将函数传递给 jQuery 是 jQuery 的快捷方式$(document).ready(fn)):

$(function () {
    alert($("#testbutton").length);
});
于 2012-09-06T13:51:34.210 回答
2

如果您使用以下方法在头部编写 jQuery 脚本:

(function() {

    ...

})();

它不起作用,因为它可能会在加载正文页面的内容之前执行脚本。

采用:

$(document).ready(function() {

    ...

});

或将脚本移至页脚。

于 2012-09-06T13:53:39.113 回答
1

如您在此处看到的,将其称为准备好的文档:http: //jsfiddle.net/SwQUH/

$(document).ready(function() {
  alert($("#testbutton").length);
});

如果您只是这样称呼它,那么 DOM 还没有“准备好”并且 HTML 元素还不存在。

于 2012-09-06T13:51:42.513 回答
0

尝试以下

<script type="text/javascript">

首先确保在加载 jquery 时没有错误

在加载 DOM 时发出警报并检查是否一切正常。

于 2012-09-06T13:51:48.463 回答