zoukankan      html  css  js  c++  java
  • JavaScript连载27-文档加载模式以及元素获取

    一、文档加载模式

    1.事件

    • 三要素:事件源(触发时间的元素);事件名称(click点击事件);事件处理程序(事件出发后要执行的代码函数形式)
    • 存在问题:浏览器加载一个页面的时候,是按照自上而下的顺序加载的,若将script标签写到head内部,在代码执行时候,页面还没有加载,页面中的DOM对象也没有加载。就会导致js中无法获取页面中的DOM对象。
    • 解决方法:onload事件,会在整个页面加载完之后才触发,为window绑定一个onload事件,该事件对应的响应函数将会在页面加载完成之后执行,这样可以确保我们的代码执行时所有的DOM对象已经加载完了。
        <style>
            button{
                100px;
                height:100px;
                background-color:green;
                margin:0 auto;
                font-size:30px;
            }
        </style>
    
    </head>
    <body>
    <div></div>
    <button id="button">点击</button>
    <script>
        window.onload = function (ev) {
            var btn = document.getElementById("button");
            btn.onclick = function (ev) {
                alert("成功了");
            }
        }
    </script>
    </body>
    

    运行显示:
    27.1
    点击按钮
    27.2

    二、文档页面元素获取

    • 根据id、标签名、name、类名、选择器获取元素
    <script>
        window.onload = function (ev) {
            var btn = document.getElementById("button");
            btn.onclick = function (ev) {
                alert("成功了");
            }
        }
        window.onload = function (ea) {
            var btn1 = document.getElementById("button")
            console.log(btn1);
            var btn2 = document.getElementsByClassName("button2");
            console.log(btn2[0]);
            var btn3 = document.getElementsByTagName("button");
            console.log(btn3[0]);
            var btn4 = document.getElementsByName("button3");
            console.log(btn4[0]);
            var btn5 = document.querySelector("#button2");
            console.log(btn5);
            var btn6 = document.querySelectorAll("#button1");
            console.log(btn6[0]);
        }
    </script>
    

    运行显示:
    27.3

    三、源码:

    • D27_1_Document.html
    • 地址:https://github.com/ruigege66/JavaScript/blob/master/D27_1_Document.html
    • 博客园:https://www.cnblogs.com/ruigege0000/
    • CSDN:https://blog.csdn.net/weixin_44630050?t=1
    • 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
      20.4
  • 相关阅读:
    redux VS mobx (装饰器配合使用)
    react-native 中使用 mobx
    使用 react-native-tab-navigator 创建 TabBar 组件
    react-native ListView 封装 实现 下拉刷新/上拉加载更多
    react-native 路由 react-native-router-flux
    react-native fetch 请求封装
    react-native flex 布局 详解
    react-native AsyncStorage 数据持久化方案
    react-native 自定义 下拉刷新 / 上拉加载更多 组件
    用 Core Animation 实现图片的碎片化
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/13388694.html
Copyright © 2011-2022 走看看