内容回顾

  

- 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>

    

  

day54 Pyhton 前端JS06的更多相关文章

  1. day54 Pyhton 前端JS05

    今日内容: 1.数组Array var colors = ['red','color','yellow']; 使用new 关键词对构造函数进行创建对象 var colors2 = new Array( ...

  2. day56 Pyhton 前端Jquery08

    前端 内容回顾: -BOM -jquery介绍 -jquery下载和引入方式 npm install jquery -jquery的选择器 -基本选择器 -通配符选择器 - id选择器 - 类选择器 ...

  3. day50 Pyhton 前端01

    文档结构: <!-- 定义文档类型 --> <!DOCTYPE html> <!-- 文档 --> <html lang='en'> <!-- 仅 ...

  4. day57 Pyhton 前端Jquery09

    内容回顾: - 筛选选择器 $('li:eq(1)')  查找匹配的元素 $('li:first') $('li:last') - 属性选择器 - 筛选的方法 - find()  查找后代的元素 - ...

  5. day55 Pyhton 前端Jquery07

    昨日回顾: 表单,点击submit提交以后,服务端受到信息 import socket import pymysql from urllib.parse import unquote def run( ...

  6. day53 Pyhton 前端04

    内容回顾: 盒子: 内边距:padding,解决内部矛盾,内边距的增加整个盒子也会增加 外边距:margin,解决外部矛盾,当来盒子都有外边距的时候,取两者最大值 边框:border border-c ...

  7. day52 Pyhton 前端03

    内容回顾 块级标签: div p h 列表:ol;ul;dl 表格:table 行内标签: span a i/em b/strong u/del 行内块: input textarea img 其他: ...

  8. day51 Pyhton 前端02

    内容回顾: 1.h1~h6:加粗,数字越大级别越小,自动换行 2.br:换行;hr:分割线; (特殊符号,空格) 3.p:与前边和后边内容之间有间距 4.a标签的href:本地文件连接;网络连接;锚链 ...

  9. Pyhton学习——Day54

    #Django内容回顾# -请求响应HTTP协议(有.无状态)默认传递的是字符串# 传递字符串分为两个部分:1.http1.1 GET /url /index + 请求头# Provisional h ...

随机推荐

  1. boot 项目启动报Cannot datermine embedded database driver class for database type NONE

    部署boot项目时报Cannot datermine embedded database driver class for database type NONE数据库链接什么的也都没有问题,经过百度 ...

  2. ThinkPHP6.0 多应用模式 部署 Layuiadmin 单页版

    TP6.0中的路由省略应用名只能用入口文件绑定应用 和 域名绑定应用,经过测试,最后得出域名绑定应用是最合适的部署方式.如果有更好的部署方案,欢迎分享.QQ:23426945 1. 下载TP6.0,引 ...

  3. Java数据类型之Cache模式

    1.关于Java数据类型 基本数据类型 基本数据类型有8种,每种基本数据类型都有对应的引用类型. 类型 描述 长度 可表示数据 包装类型 boolean 布尔型 1 true.false Boolea ...

  4. 利用预编译解决C/C++重复定义的错误 -2020.09.13

    利用预编译解决C/C++重复定义的错误 -2020.09.13 我们现在有main.c和function.h两个文件 main.c #include <stdio.h> #include ...

  5. python之requests.session()使用

    背景:使用requests.session会话对象先登录至豆瓣网,再进入“我的豆瓣”. 首先说一下,为什么要进行会话保持的操作? requests库的session会话对象可以跨请求保持某些参数. 说 ...

  6. python之map

    python之Map函数   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # map()函数使用举例 # 功能: ...

  7. 教你一招Linux下文本比对方法

    我们在写代码的过程中,免不了会对代码进行一些修修改改.但经常会出现改着改着,就不知道改完后与源文件的差异是怎样的.这里,我们就需要一个文本比对工具来进行文本比对. 有经验的程序员都知道,Windows ...

  8. 使用阿里云OSS的服务端签名后直传功能

    网站一般都会有上传功能,而对象存储服务oss是一个很好的选择.可以快速的搭建起自己的上传文件功能. 该文章以使用阿里云的OSS功能为例,记录如何在客户端使用阿里云的对象存储服务. 服务端签名后直传 背 ...

  9. RXJAVA之创建被观察者

    RXJava中提供了多种创建数据源的方式 使用create方法 Observable<String> observable = Observable.create(new Observab ...

  10. Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)

    import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...