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>
                    
                
                
            
        
浙公网安备 33010602011771号