• day54 Pyhton 前端JS06


    内容回顾

      

    - ECMAScript5.0 基础语法
                - var 声明变量
                - 五种基本数据类型
                    - string
                    - number
                        
                        NaN number
                        1   number
                    - boolean
                    - undefined
                    - null
                - 引用数据类型
                    - Array
                        var arr = [];
                        - push
                        - pop
                        - unshift
                        - shift
                        
                        - splice()
                        - forEach(function(item,index){})
                        
                    - function
                            //1 普通函数
                            // function add(a, b) {
                            //     return a + b;
                            // }
                            //
                            // var ret = add(3, 5);
                            // console.log(ret);
    
                            var oDiv = document.getElementById('box');
    
                            oDiv.onclick = function () {
    
                            }
                            console.dir(oDiv);
    
    
                            //2.函数对象
    
                            // var add  =  function () {
                            //     alert('111');
                            // }
                            //
                            // add();
    
                            //3. 自执行函数
    
                            (function (a,b) {
                                alert(22222)
                            })(1,2)
                    
                    - Date
                    - Math.random()
                    
                        min+ Math.random()*(max-min)
                    - object
                        var person = {
                            name:'alex',
                            age:18,
                            fav: function(){
                                console.log(this.name)                        
                            },
                            onclick:function(){
                            }
                        
                        }
                        person.name
                        person.fav()
                        
                        
                        class Person():
                        
                            def __init__(self,name,age):
                                self.name = name
                                self.age = age
                                
                            def fav():
                                print(self.name)
                        p = Person()
                        p.fav()
                        
                        
                        def add(a,b):
                            return a+b
                            
                        ret = add(1,2)
                    
            - DOM 文档对象模型
                - 获取DOM的三种方式
                    1 通过id获取
                    var oDiv = document.getElementById('box');
                    2 class获取
                    var oDiv = document.getElementsByClassName('box')[0];
                    3 标签获取
                    var oDiv = document.getElementsByClassName('box')[0];
                - 事件
                    onclick
                    onmouseenter
                    onmouseleave
                    onload
                    
                - 业务逻辑
                    - 对DOM对象的样式属性操作                
                        # 点语法 
                            get和set
                        console.log(oDiv.style.display);  # 获取属性值 get  readyonly
                        oDiv.style.display = 'none' # 设置属性值 set
                    - 对DOM对象的类属性操作
                        oDiv.className
                    - 对DOM对象值的操作
                        oDiv.innerText
                    
                    
                    dl
                        dt
                            dd
                    table
                        tr
                            td
                    form
                        action 提交的服务器地址
                        method
                        enctype...
                        
                       input
                            type 
                                text 文本输入框
                                password 密码框
                                radio 单选框 产生互斥效果: 让两个radio的name值一样。默认选中:checked
                                checkbox 多选框  默认值:checked
                                submit 提交按钮
                                file 文件上传 必须为post  form表单上的属性必须:enctype="multipart/form-data"
                        select  name  multiple 表示多选 摁着ctrl键选中
                            option  value  selected 默认选中
                                    
                        
                        
                   
           
                
            - BOM 浏览器对象模型       
    回顾pymysql
            import pymysql
    
            conn = pymysql.connect(
                host='127.0.0.1',
                user='root',
                password="123",
                database='db1',
                port=3306,
                charset='utf8'
            )
    
            # 创建游标
            cur = conn.cursor(pymysql.cursors.DictCursor)
    
            sql = 'insert into t7 value (%(name)s,%(sex)s)'
            # cur.execute(sql,('wusir','female'))
            cur.execute(sql,{"name":'wusir','sex':'female'})
    
            rets = cur.fetchall()
    
            print(rets)
            conn.commit()
            cur.close()
            conn.close()
            
        数据库的数据类型   
        char varchar
        int 
        float double decimal
        year date time datetime
        set   多选一或多选多
        enum  多选一
        tinyint(1) 表示数据库的true和false  自己查询

    今日内容
      业务逻辑

        对DOM对象的样式属性操作

          #点语法

            get和set

           console.log(oDiv.style.display);#获取属性值  get   readyonly

           oDiv.style.display = 'none' # 设置属性值  set

         对DOM对象的类属性操作

           oDiv.className

           对DOM对象值的操作

           oDiv.innerText

           oDiv.innerHTML

           <input  value='123'/>

           oInput.value

        对标签属性操作

          oA.href

          oA.title

          oImg.src

       选项卡实现

    # 排他思想
                 <!DOCTYPE html>
                    <html lang="en">
                    <head>
                        <meta charset="UTF-8">
                        <title>Title</title>
                        <style>
                            p{
                                display: none;
                            }
                            p.active{
                                display: block;
                            }
                        </style>
    
                    </head>
                    <body>
    
                    <button>按钮1</button>
                    <button>按钮2</button>
                    <button>按钮3</button>
                    <button>按钮4</button>
    
    
                    <p>哭加为</p>
                    <p>七轸堂</p>
                    <p>王家辉</p>
                    <p>任希桐</p>
    
    
                    <script>
    
                        var oBtns = document.getElementsByTagName('button');
                        var oPs = document.getElementsByTagName('p');
                        var i;
                        for (i = 0; i < oBtns.length; i++) { //为什么要for循环 获取事件对象+ 事件
    
                            oBtns[i].index = i;
    
                            oBtns[i].onclick = function () {
                                console.log(this);
    
                                // 把所有的变灰
                                for (var j = 0; j < oBtns.length; j++){
                                    oBtns[j].style.color = '#000';
    
                                    oPs[j].className = '';
                                }
                                    // 业务逻辑 点的当前盒子变色
                                this.style.color = '#ff6700';
                                console.log(i);
                                oPs[this.index].className +='active';
    
                            }
    
                        }
                    </script>
    
                    </body>
                    </html>
            - 选项卡  使用let 解决变量提升的问题

    变量提升:

    <body>
    
    <script>
    
    
        console.log(a);
        a = 3;
        console.log(a);
        //
        var a = [];
    
        for (let i = 0; i < 10; i++) {
            a[i] = function () {
                console.log(i);
            };
        }
        //
        // console.log(a);
        //
        console.log(a[9]());//i=9 ,如果是var 则i=10
    
        //let 声明的变量不存在变量提升,是块级作用域
        console.log(c);
        let c = 5;//let 报错不能变量提升,var可以变量提升
    </script>
    
    </body>

    let控制选项卡操作

    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            p{
                display: none;
            }
            p.active{
                display: block;
            }
        </style>
    
    </head>
    <body>
    
    <button>按钮1</button>
    <button>按钮2</button>
    <button>按钮3</button>
    <button>按钮4</button>
    
    
    <p>哭加为</p>
    <p>七轸堂</p>
    <p>王家辉</p>
    <p>任希桐</p>
    
    
    <script>
    
        var oBtns = document.getElementsByTagName('button');
        var oPs = document.getElementsByTagName('p');
    
        for (let i = 0; i < oBtns.length; i++) { //为什么要for循环 获取事件对象+ 事件
    
    
    
            oBtns[i].onclick = function () {
    
                // 把所有的变灰
                for (var j = 0; j < oBtns.length; j++){
                    oBtns[j].style.color = '#000';
    
                    oPs[j].className = '';
                }
                    // 业务逻辑 点的当前盒子变色
                this.style.color = '#ff6700';
                console.log(i);
                oPs[i].className +='active';
    
            }
    
        }
    </script>
    
    </body>

    DOM操作:

    <body>
    <input type="text" id="username">
    <button id="add">添加</button>
    
    <div>
        <p id="box2"></p>
        <p>alex</p>
    </div>
    <ul id="box">
        <!--<li></li>-->
    </ul>
    
    <script>
    
        var oP = document.getElementById('box2');
        // console.log(oP.nextElementSibling.innerText);
        var oP2 = oP.nextElementSibling || oP.nextSibling;//兼容不同版本浏览器
        console.log(oP2.innerText);
    
    
    
        var oBtnAdd = document.getElementById('add');
        var oUl = document.getElementById('box');
        var oInput = document.getElementById('username');
        //1.创建DOM
    
        oBtnAdd.onclick = function () {
            var oLi = document.createElement('li');
            var oA = document.createElement('a');
            var oDelete = document.createElement('button');
            var abc = document.createElement('abc');
            var oUpdate = document.createElement('button');
    
            if (oInput.value === '') {
                return;
            } else {
                oA.innerText = oInput.value;
                oA.href = 'http://www.baidu.com';
                oDelete.innerText = '删除';
                oDelete.id = 'delete';
                oUpdate.innerText = '更改';
    
                abc.innerText = 'alex';
    
                abc.setAttribute('abc_name','哈哈哈');
                abc.ABC = 'xxxxxx';
    
                console.dir(abc);
                //2 修改DOM  DOM操作
                // oLi.innerHTML = '<a href="">哭加为</a>'
                oLi.appendChild(oA);
                oLi.appendChild(oDelete);
                oLi.appendChild(abc);
                //inserBefore(添加的DOM,参考的节点)
                oLi.insertBefore(oUpdate,oDelete);
                //2.追加DOM
                oUl.appendChild(oLi);
    
    
                //清空操作
                oInput.value = ''
            }
            oDelete.onclick = function () {
                console.log(this.parentNode);
                oUl.removeChild(this.parentNode)
            }
    
    
        }
    
    
    </script>
    </body>

    publish

    <body>
    
    <table border="1" style="border-collapse: collapse;" width="100%">
        <h2>我的出版社</h2>
        <thead>
        <tr>
            <td>编号</td>
            <td>名字</td>
            <td>邮箱</td>
            <td>操作</td>
        </tr>
        </thead>
        <tbody id="publish_content">
    
    
        </tbody>
    </table>
    
    <script>
    
        // JSON.parse()
        // JSON.stringify()
        //JSON "{"status":"ok","data":[]}"
        var publish_data = {
            status: 'ok',
            data: [
                {
                    'id': 1,
                    'name': '沙河出版社',
                    'email': '131313@qq.com'
                },
                {
                    'id': 2,
                    'name': '昌平出版社',
                    'email': 'adad@qq.com'
                },
                {
                    'id': 3,
                    'name': '老男孩出版社',
                    'email': 'oldboy@qq.com'
                },
                {
                    'id': 4,
                    'name': '路飞出版社',
                    'email': 'luffycity@126.com'
                },
                {
                    'id': 5,
                    'name': '路飞出版社',
                    'email': 'luffycityXXXX@126.com'
                }
    
    
            ]
    
        }
    
        var oPublish_con = document.getElementById('publish_content');
    
        setTimeout(function () {
    
                if (publish_data.status == 'ok') {
    
                    function $(ele) {
    
                        return document.createElement(ele);
                    }
    
                    publish_data.data.forEach(function (item, index) {
    
                            //创建元素
                            var oTr = $('tr');
                            var oIndex = $('td');
                            var oName = $('td');
                            var oEmail = $('td');
                            var oOpeart = $('td');
                            var oUpdate = $('a');
                            var oDelete = $('a');
                            oUpdate.innerText = '更改';
                            oDelete.innerText = '删除';
                            oUpdate.href = 'javascript:void(0);';
                            oDelete.href = 'javascript:void(0);';
                            //更改内容
                            oIndex.innerText = index + 1;
                            oName.innerText = item.name;
                            oEmail.innerText = item.email;
    
    
                            //追加元素
                            oTr.appendChild(oIndex);
                            oTr.appendChild(oName);
                            oTr.appendChild(oEmail);
                            oTr.appendChild(oOpeart);
    
                            oOpeart.appendChild(oUpdate);
                            oOpeart.appendChild(oDelete);
                            oPublish_con.appendChild(oTr);
    
                        }
                    )
                }
    
    
            },
            1000
        )
    
    
    </script>
    
    </body>

        

      

  • 相关阅读:
    POJ 1001 Exponentiation
    POJ 2105 IP Address
    条款1:视C++为一个语言联邦
    条款2:尽量使用const ,enum,inline替换define
    走台阶问题
    Oracle之分页问题
    Oracle之子查询:Top-N问题
    Facade——外观模式
    PROXY——代理模式
    C++ 内联函数
  • 原文地址:https://www.cnblogs.com/pythonz/p/10235506.html
Copyright © 2020-2023  润新知