Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery找不到元素_Jquery_Selector - Fatal编程技术网

jQuery找不到元素

jQuery找不到元素,jquery,selector,Jquery,Selector,jQuery找不到任何元素警报($(“#测试按钮”).length)每次显示0 我做错什么了吗 我的JS/jQuery代码: (function ($) { alert($("#testbutton").length); }) (jQuery); <html> <body> <div id="header"> <div class="button" id="testbutton">Test&

jQuery找不到任何元素<代码>警报($(“#测试按钮”).length)每次显示0

我做错什么了吗

我的JS/jQuery代码:

(function ($) {
    alert($("#testbutton").length);
}) (jQuery);
<html>
    <body>
        <div id="header">
            <div class="button" id="testbutton">Test</div>
        </div>
    </body>    
</html>
我的HTML:

(function ($) {
    alert($("#testbutton").length);
}) (jQuery);
<html>
    <body>
        <div id="header">
            <div class="button" id="testbutton">Test</div>
        </div>
    </body>    
</html>

试验

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


在document ready上调用它,如下所示:

如果您只是这样调用它,那么DOM还没有“就绪”,HTML元素也不存在。

请尝试以下操作

<script type="text/javascript">

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


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

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

(function() {

    ...

})();
它无法工作,因为它可能会在加载正文页的内容之前执行脚本

使用:


或者在页脚移动脚本。

(函数($){})(jQuery);等价于$(函数(){})@InternalServerError-不,不是。它只是在
jQuery
对象中传递的一个立即执行的函数表达式。第二种是完全不同的——将函数传递给jQuery;第一个是IIFE,它只将
jQuery
变量传递给正在执行的函数;第二个是
$(document).ready(function(){})的缩写您的代码可以在fiddle中找到。
$(document).ready(function() {

    ...

});