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': '[email protected]'
            },
            {
                'id': 2,
                'name': '昌平出版社',
                'email': '[email protected]'
            },
            {
                'id': 3,
                'name': '老男孩出版社',
                'email': '[email protected]'
            },
            {
                'id': 4,
                'name': '路飞出版社',
                'email': '[email protected]'
            },
            {
                'id': 5,
                'name': '路飞出版社',
                'email': '[email protected]'
            }


        ]

    }

    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>

    

  

猜你喜欢

转载自www.cnblogs.com/pythonz/p/10235506.html