用JavaScript执行顺序操纵DOM

用JavaScript执行顺序操纵DOM,javascript,onready,Javascript,Onready,我有以下代码和结果附在最后。我知道JQuery.ready和JQuery.Window加载事件是在创建DOM之后运行的,因此它可以操作DOM,而不是第一个更改John背景的函数 我的问题是: John的背景没有变为黄色是因为JavaScript本质上是反向引用的,它无法在脚本运行时找到id为1的元素 如果我必须运行第一个函数来更改John的背景,那么这个函数应该在DIV标记之后使用吗 大宗报价 (功能(){ $('#name1').css('background-color','yellow'

我有以下代码和结果附在最后。我知道JQuery.ready和JQuery.Window加载事件是在创建DOM之后运行的,因此它可以操作DOM,而不是第一个更改John背景的函数

我的问题是:

  • John的背景没有变为黄色是因为JavaScript本质上是反向引用的,它无法在脚本运行时找到id为1的元素

  • 如果我必须运行第一个函数来更改John的背景,那么这个函数应该在DIV标记之后使用吗

  • 大宗报价

    
    (功能(){
    $('#name1').css('background-color','yellow');
    })();
    $(函数(){
    $('#name2').css('background-color','red');
    });
    $(窗口)。加载((函数(){
    $('#name3').css('background-color','blue');
    }));
    约翰
    玛丽
    雅各布
    詹姆斯
    (功能(){
    $('#name4').css('background-color','yellow');
    })();
    
    大宗报价


    当通过Javascript(或Javascript库或框架)操作DOM时,必须在尝试操作DOM元素之前,使要操作的DOM元素存在


    如果你没有,那么。。。没有什么可操作的。

    当通过Javascript(或Javascript库或框架)操作DOM时,必须在尝试操作DOM元素之前,将要操作的DOM元素带到存在状态


    如果你没有,那么。。。没有什么可操作的。

    当通过Javascript(或Javascript库或框架)操作DOM时,必须在尝试操作DOM元素之前,将要操作的DOM元素带到存在状态


    如果你没有,那么。。。没有什么可操作的。

    当通过Javascript(或Javascript库或框架)操作DOM时,必须在尝试操作DOM元素之前,将要操作的DOM元素带到存在状态


    如果你没有,那么。。。那里根本没有什么可操作的。

    HTML由浏览器从上到下读取。因此:

    <script>
    
    这实际上是jQuery中
    $(document).ready(…)的快捷方式认为这不是一个好的实践,因为它不是可读的。< /P>
    
        $(function () {
            $('#name2').css('background-color', 'red');
        });
    
    这一个执行窗口加载(这不完全相同)

    $(窗口)。加载((函数(){
    $('#name3').css('background-color','blue');
    }));
    约翰
    玛丽
    雅各布
    詹姆斯
    
    这也是立即执行的(IEFs):在这种情况下,它会起作用,但这不是一种最佳实践

        (function () {
            $('#name4').css('background-color', 'yellow');
        })();
    </script>
    
    (函数(){
    $('#name4').css('background-color','yellow');
    })();
    
    如果您想了解document.ready和window.load之间的更多区别,请查看

    JavaScript是一种事件驱动语言,其优点是可以根据需要向事件添加任意多的侦听器,因此向加载的DOM内容添加事件侦听器几乎总是最好的方法。始终在最后加载脚本也是一种最佳实践,这样您就可以让用户先获得内容和样式,然后开始使用功能

    我将如何编写您的代码:

    <div id="name1">John</div>
    <div id="name2">Mary</div>
    <div id="name3">Jacob</div>
    <div id="name4">James</div>
    
    <script>
        document.addEventListener("DOMContentLoaded", function(event) {
            // DOM fully loaded and parsed
            $('#name1').css('background-color', 'yellow');
            $('#name2').css('background-color', 'red');
            $('#name3').css('background-color', 'blue');
            $('#name4').css('background-color', 'yellow');
        });
    </script>
    
    约翰 玛丽 雅各布 詹姆斯 document.addEventListener(“DOMContentLoaded”),函数(事件){ //DOM已完全加载和解析 $('#name1').css('background-color','yellow'); $('#name2').css('background-color','red'); $('#name3').css('background-color','blue'); $('#name4').css('background-color','yellow'); });

    虽然我不会使用jQuery来实现这个:p。我甚至不会使用JavaScript来实现这个,只要使用好的旧CSS;)

    HTML由浏览器从上到下读取。因此:

    <script>
    
    这实际上是jQuery中
    $(document).ready(…)的快捷方式认为这不是一个好的实践,因为它不是可读的。< /P>
    
        $(function () {
            $('#name2').css('background-color', 'red');
        });
    
    这一个执行窗口加载(这不完全相同)

    $(窗口)。加载((函数(){
    $('#name3').css('background-color','blue');
    }));
    约翰
    玛丽
    雅各布
    詹姆斯
    
    这也是立即执行的(IEFs):在这种情况下,它会起作用,但这不是一种最佳实践

        (function () {
            $('#name4').css('background-color', 'yellow');
        })();
    </script>
    
    (函数(){
    $('#name4').css('background-color','yellow');
    })();
    
    如果您想了解document.ready和window.load之间的更多区别,请查看

    JavaScript是一种事件驱动语言,其优点是可以根据需要向事件添加任意多的侦听器,因此向加载的DOM内容添加事件侦听器几乎总是最好的方法。始终在最后加载脚本也是一种最佳实践,这样您就可以让用户先获得内容和样式,然后开始使用功能

    我将如何编写您的代码:

    <div id="name1">John</div>
    <div id="name2">Mary</div>
    <div id="name3">Jacob</div>
    <div id="name4">James</div>
    
    <script>
        document.addEventListener("DOMContentLoaded", function(event) {
            // DOM fully loaded and parsed
            $('#name1').css('background-color', 'yellow');
            $('#name2').css('background-color', 'red');
            $('#name3').css('background-color', 'blue');
            $('#name4').css('background-color', 'yellow');
        });
    </script>
    
    约翰 玛丽 雅各布 詹姆斯 document.addEventListener(“DOMContentLoaded”),函数(事件){ //DOM已完全加载和解析 $('#name1').css('background-color','yellow'); $('#name2').css('background-color','red'); $('#name3').css('background-color','blue'); $('#name4').css('background-color','yellow'); });

    虽然我不会使用jQuery来实现这个:p。我甚至不会使用JavaScript来实现这个,只要使用好的旧CSS;)

    HTML由浏览器从上到下读取。因此:

    <script>
    
    这实际上是jQuery中
    $(document).ready(…)的快捷方式认为这不是一个好的实践,因为它不是可读的。< /P>
    
        $(function () {
            $('#name2').css('background-color', 'red');
        });
    
    这一个执行窗口加载(这不完全相同)

    $(窗口)。加载((函数(){
    $('#name3').css('background-color','blue');
    }));
    约翰
    玛丽
    雅各布
    詹姆斯