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>
day54 Pyhton 前端JS06的更多相关文章
- day54 Pyhton 前端JS05
今日内容: 1.数组Array var colors = ['red','color','yellow']; 使用new 关键词对构造函数进行创建对象 var colors2 = new Array( ...
- day56 Pyhton 前端Jquery08
前端 内容回顾: -BOM -jquery介绍 -jquery下载和引入方式 npm install jquery -jquery的选择器 -基本选择器 -通配符选择器 - id选择器 - 类选择器 ...
- day50 Pyhton 前端01
文档结构: <!-- 定义文档类型 --> <!DOCTYPE html> <!-- 文档 --> <html lang='en'> <!-- 仅 ...
- day57 Pyhton 前端Jquery09
内容回顾: - 筛选选择器 $('li:eq(1)') 查找匹配的元素 $('li:first') $('li:last') - 属性选择器 - 筛选的方法 - find() 查找后代的元素 - ...
- day55 Pyhton 前端Jquery07
昨日回顾: 表单,点击submit提交以后,服务端受到信息 import socket import pymysql from urllib.parse import unquote def run( ...
- day53 Pyhton 前端04
内容回顾: 盒子: 内边距:padding,解决内部矛盾,内边距的增加整个盒子也会增加 外边距:margin,解决外部矛盾,当来盒子都有外边距的时候,取两者最大值 边框:border border-c ...
- day52 Pyhton 前端03
内容回顾 块级标签: div p h 列表:ol;ul;dl 表格:table 行内标签: span a i/em b/strong u/del 行内块: input textarea img 其他: ...
- day51 Pyhton 前端02
内容回顾: 1.h1~h6:加粗,数字越大级别越小,自动换行 2.br:换行;hr:分割线; (特殊符号,空格) 3.p:与前边和后边内容之间有间距 4.a标签的href:本地文件连接;网络连接;锚链 ...
- Pyhton学习——Day54
#Django内容回顾# -请求响应HTTP协议(有.无状态)默认传递的是字符串# 传递字符串分为两个部分:1.http1.1 GET /url /index + 请求头# Provisional h ...
随机推荐
- TP6.0 获取请求对象的五种方式
目录 1. 门面类 2. 依赖注入 3. 框架提供的基础控制器的 request 属性 4. request() 助手函数 5. app() 超级助手函数 think\Request.think\fa ...
- xargs命令学习,于阮一峰博客
一.标准输入与管道命令 Unix 命令都带有参数,有些命令可以接受"标准输入"(stdin)作为参数. $ cat /etc/passwd | grep root 上面的代码使用了 ...
- xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...
- ASP.NET Core 配置与获取
目录 1,来自字典 2,来自配置文件 3,层次结构 4,映射 ASP.NET Core 中,可以使用 ConfigurationBuilder 对象来构建. 主要分为三部:配置数据源 -> Co ...
- hystrix源码之请求合并
请求合并 使用HystrixObservableCollapser可以将参数不同,但执行过程相同的调用合并执行.当调用observe.toObservable方法时,会向RequestCollapse ...
- 必须了解的mysql三大日志-binlog、redo log和undo log
日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息.mysql日志主要包括错误日志.查询日志.慢查询日志.事务日志.二进制日志几大类.作为开发,我们重点需要关注的是二进制日志( ...
- 2.Strom-入门案例
- ES6 常用总结——第三章(数组、函数、对象的扩展)
1.1. Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结 ...
- Cypress系列(60)- 运行时的截图和录屏
如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 背景 在测试运行时截图和录屏能够在测试错 ...
- springmvc 源码分析(二)-- DiapartcherServlet核心调用流程分析
测试环境搭建: 本次搭建是基于springboot来实现的,代码在码云的链接:https://gitee.com/yangxioahui/thymeleaf.git 项目结构代码如下: 一: cont ...