Javascript jQuery无法找到元素,除非内部文档准备就绪

Javascript jQuery无法找到元素,除非内部文档准备就绪,javascript,jquery,Javascript,Jquery,我从这个简单的代码开始,目的是计算选择器一次 (function($) { var $mydiv = $('.mydiv'); var myFunc = function(){ $mydiv.css('background', 'red'); } $(document).ready(function(){ myFunc(); }); $(document).resize(function(){

我从这个简单的代码开始,目的是计算选择器一次

(function($) {

    var $mydiv = $('.mydiv');
    var myFunc = function(){
         $mydiv.css('background', 'red');
    }

    $(document).ready(function(){
        myFunc();
    });

    $(document).resize(function(){
        myFunc();
    });

})(jQuery);
但我只能通过将选择器移动到doc ready中来让它工作,但我不明白为什么我需要这样做

(function($) {

    var $mydiv;
    var myFunc = function(){
         if(!$mydiv){
             $mydiv = $('.mydiv');
         }
         $mydiv.css('background', 'red');
    }

    $(document).ready(function(){
        myFunc();
    });

    $(document).resize(function(){
        myFunc();
    });

})(jQuery);
为什么文档准备是必要的

因为Html在javascript加载时开始执行时需要花费时间来呈现,所以DocumentReady在开始通过jQuery或javascript访问Html之前,请确保Html已完全加载

否则,
$('.elementClass')
将返回null,因为没有加载DOM,所以所有脚本都将意外出现

如上所述:

在文档“就绪”之前,页面无法安全操作。jQuery会为您检测这种就绪状态。$(document).ready()中包含的代码只有在页面文档对象模型(DOM)准备好让JavaScript代码执行后才会运行。$(window).load(function(){…})中包含的代码将在整个页面(图像或iframe)而不仅仅是DOM就绪后运行

为什么文档准备是必要的

因为Html在javascript加载时开始执行时需要花费时间来呈现,所以DocumentReady在开始通过jQuery或javascript访问Html之前,请确保Html已完全加载

否则,
$('.elementClass')
将返回null,因为没有加载DOM,所以所有脚本都将意外出现

如上所述:

在文档“就绪”之前,页面无法安全操作。jQuery会为您检测这种就绪状态。$(document).ready()中包含的代码只有在页面文档对象模型(DOM)准备好让JavaScript代码执行后才会运行。$(window).load(function(){…})中包含的代码将在整个页面(图像或iframe)而不仅仅是DOM就绪后运行

为什么文档准备是必要的

因为Html在javascript加载时开始执行时需要花费时间来呈现,所以DocumentReady在开始通过jQuery或javascript访问Html之前,请确保Html已完全加载

否则,
$('.elementClass')
将返回null,因为没有加载DOM,所以所有脚本都将意外出现

如上所述:

在文档“就绪”之前,页面无法安全操作。jQuery会为您检测这种就绪状态。$(document).ready()中包含的代码只有在页面文档对象模型(DOM)准备好让JavaScript代码执行后才会运行。$(window).load(function(){…})中包含的代码将在整个页面(图像或iframe)而不仅仅是DOM就绪后运行

为什么文档准备是必要的

因为Html在javascript加载时开始执行时需要花费时间来呈现,所以DocumentReady在开始通过jQuery或javascript访问Html之前,请确保Html已完全加载

否则,
$('.elementClass')
将返回null,因为没有加载DOM,所以所有脚本都将意外出现

如上所述:

在文档“就绪”之前,页面无法安全操作。jQuery会为您检测这种就绪状态。$(document).ready()中包含的代码只有在页面文档对象模型(DOM)准备好让JavaScript代码执行后才会运行。$(window).load(function(){…})中包含的代码将在整个页面(图像或iframe)而不仅仅是DOM就绪后运行


我的猜测是,在运行脚本时,主体中不存在.mydiv

HTML中的脚本标记可以位于mydiv类的元素之上


尝试将脚本标记移动到正文的底部。

我的猜测是,在运行脚本时,正文中不存在.mydiv

HTML中的脚本标记可以位于mydiv类的元素之上


尝试将脚本标记移动到正文的底部。

我的猜测是,在运行脚本时,正文中不存在.mydiv

HTML中的脚本标记可以位于mydiv类的元素之上


尝试将脚本标记移动到正文的底部。

我的猜测是,在运行脚本时,正文中不存在.mydiv

HTML中的脚本标记可以位于mydiv类的元素之上


尝试将脚本标记移动到正文的底部。

这是因为在dom就绪之前,html不会呈现。在加载DOM之前,js代码不会工作。看到这个,您的“.myDiv”可能不会在脚本执行时创建,这是因为在dom就绪之前不会呈现html。在加载DOM之前,js代码不会工作。看到这个,您的“.myDiv”可能不会在脚本执行时创建,这是因为在dom就绪之前不会呈现html。在加载DOM之前,js代码不会工作。看到这个,您的“.myDiv”可能不会在脚本执行时创建,这是因为在dom就绪之前不会呈现html。在加载DOM之前,js代码不会工作。请参见此信息。您的“.myDiv”可能在脚本执行时未创建