python27期jquery:
JavaScript:(简称“JS”) 是一种轻量级的编程语言(ECMAscript5或6)
是一种解释性脚本语言(代码不进行预编译)
主要用来向HTML页面添加交互行为
JavaScript 是互联网上最流行的脚本语言
虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中
支持面向对象、命令式和声明式(如函数式编程)风格
JavaScript在1995年由Netscape公司的Brendan(布兰登) Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript
我们学习它的目的是让我们的页面可以动起来(HTML、CSS只能写出静态效果),并且可以添加一些用户交互的行为
- JavaScript,他和Python一样是一门编程语言,而浏览器内置了JavaScript语言的解释器,所以JavaScript代码在浏览器上就可以运行
- DOM,(Document Object Model)是指文档对象模型,通过它,可以操作HTML文档的相关功能,例如:对标签内容进行删除和替换等(非重点)
- BOM,(Browser Object Model)是指浏览器对象模型,通过他,可以操作浏览器相关的功能,例如:浏览器设置定时器,浏览器定时刷新页面。
三种js代码引入方式:
1 head标签的script标签里面(alert('xx'), confirm('xx'))
<script>
<!--alert("xx");-->
<!--confirm("xx")-->
</script>
2 body标签的script标签里面 (建议底部)
<script src="test.js"></script>
js代码如下:
alert("18禁");
confirm("你满18岁了吗?");
3 外部文件引入的方式来使用
创建一个.js结尾的文件,写上js代码
比如:alert('are you ok?');
在想使用这个js代码的html文件中,head标签或者body标签下面或者上面导入
<script src="test.js"></script>
推荐大家把js代码都放在body标签的底部
语言基础:
变量:
var a = 100; 变量定义 var 变量名; 变量声明,但没有赋值的时候,变量的值为undefined
数据类型:
number类型 (整数,浮点数)
var n = 11;
var n2 = 11.11;
js代码注释 // js代码
查看数据类型 typeof 变量名;
typeof n;
string类型(字符串)
var a = 'abcdef';
var a = new String('ss');
字符串操作:
var s = 'hello';
索引取值: s[1] -- 'e'
获取长度:s.length;
移除两端空格: s.trim(); s.trimLeft(); s.trimRight();
var value = name.charAt(index) // 根据索引获取字符
示例: var s = 'hello'; -- s.charAt(4); -- 'o'
var value = name.substring(start,end) // 根据索引获取子序列(切片)
示例: s.substring(1,3); -- "el"
布尔类型(boolean类型)
var a = true;
var b = false;
undefined和null类型:
undefined 变量声明了,但是没有赋值,此时这个变量是undefined类型
null : 变量不用了,就可以给变量赋值为null,--- object类型
数组 (array)
var names = [11,22,33];
数组常用方法:
names[0] // 索引,索引也是从0开始的
names.push(ele) // 尾部追加元素
示例:a.push('xx'); -- [11, 22, 33, "xx"]
names.pop() // 尾部移除一个元素
示例:a.pop(); -- [11, 22, 33]
names.unshift(ele) // 头部插入元素
示例:a.unshift('ssss'); -- ["ssss", 11, 22, 33]
var ele = obj.shift() // 头部移除一个元素
示例:a.shift(); -- [11, 22, 33]
数组常用方法:指定位置修改元素
names.splice(index,0,ele) // 在指定索引位置插入元素
names.splice(从哪删(索引),删几个(个数),删除位置替换的新元素(可不写,可写多个))
names.splice(index,1,ele) // 指定索引位置替换元素
names.splice(index,1) // 指定位置删除元素
示例:a.splice(1,2)
示例:a.splice(1,1,'xx','oo','asdf'); -- [11, "xx", "oo", "asdf", 33]
数组常用方法:
names.slice(start,end) // 切片
示例:a.slice(1,3);
names.reverse() // 原数组反转
示例:a.reverse();
names.join(sep) // 将数组元素连接起来以构建一个字符串
示例: var a = ['ni','hao','ma',18]
a.join('+'); -- "ni+hao+ma+18"
names.concat(val,..) // 连接数组
示例: var a = [11,22]; var b = ['aa','bb']
var c = a.concat(b); c -- [11, 22, "aa", "bb"]
names.sort() (辣鸡) // 对原数组进行排序 a.sort(compare); 升序排列
解决数组中数字排序的问题:
a = [2,3,5,2,22,4,2,3,234,1]
function com(a,b){return a-b}; // 自定义排序规则
a.sort(com);
当a-b大于0时,会交换数组中的这两个元素
一直交换直到返回值没有大于0的
字典(自定义对象Object):JavaScript中其实没有字典类型,字典是通过对象object构造出来的
info = {
name:'迪丽热巴',
"age":18
}
或者var a = {username:'xx',password:'123'}; //键可以不加引号
var a = info['name'] // 通过键取值必须加引号 (info.name)
info['age'] = 20 // 修改
info['gender'] = 'male' // 新增
delete info['age'] // 删除
流程控制
if判断
if (a == 1){ //判断条件写在小括号里面,大括号里面写条件判断成功后的代码内容
console.log('1111'); (类似print)
}
else{
console.log('222');
}
流程控制
多条件判断
if(a > 1){
// console.log('1111');
// var hhhh = document.getElementById('d1');
// hhhh.innerText = '彭于晏';
}else if(a<1){
console.log('2222');
}else {
console.log('3333');
}
运算符:比较运算符
> < == != >= <= === !==
var a = 2;
var b = '2';
a == b; true 弱等于
a === b; false 强等于
a != b; false
a !== b; true
运算符:算术运算
+ - * / % ++ --
++ 自增 1
-- 自减 1
var a = 2;
a++ 先执行逻辑 +1
++a 先+1 再执行逻辑
简单示例:
if (++a === 4){ //(a++ === 3)
console.log('xxx');}
else{
console.log('ooo');};
switch判断 用于判断等于某些值(只能放数字)
var num = 200;
switch(num++){
case 10:
console.log('未成年');
break;
case 18:
console.log('成年');
break;
case 35:
console.log('老年');
break;
case 100:
console.log('....');
break;
default:
console.log('太大了');};
异常捕获
try{
console.log(xx);
}
catch(e){
console.log(e);
}
finally{
console.log('sssss');
}
循环:for循环
for (var i=0;i<100;++i){ // i++
console.log(i);
};
循环数组
var d = [11,22,33];
for (var i in d){
if (d[i] === 22){
continue;
// break;
}
console.log(i,d[i]);
}
for (var i=0;i<d.length;i++){
console.log(i,d[i]);
};
循环:for循环
var names = ['老男孩', '肖峰', '吴超']
for(var i=0;i<names.length;i++){
console.log(i, names[i])
}
循环自定义对象--python字典
for (var i in d){
console.log(i,d[i]); #不要用d.i来取值,没有 i 属性
}
函数:普通函数
function f1(a,b){
return a+b;
}
// 执行: f1(1,2) -- 3
function f1(a,b){
return a,b;
};
f1(1,2); //不能返回多个值: 2
函数:匿名函数,一般用于当做参数使用
function (arg){
return arg + 1;
}
——————————————————————————————
var a = function (a,b){
console.log('xxx');
}
var d = {'xx':'oo','f':function (a,b){
console.log('xxx');
}};
执行:d.f(1,2);
函数:自执行函数,自动触发执行
一般用于做数据隔离使用,因为JS中是以函数为作用域,所以当js代码比较多时,通过自执行函数做数据隔离
(function () {
alert('自执行函数!')
})()
JavaScript提供了json序列化功能
JSON.stringify(object) ,序列化
var info = {name:'alex',age:19,girls:['钢弹','铁锤']}
var infoStr = JSON.stringify(info)
console.log(infoStr) # '{"name":"alex","age":19,"girls":["钢弹","铁锤"]}'
JSON.parse(str),反序列化
var infoStr = '{"name":"alex","age":19,"girls":["钢弹","铁锤"]}' //键必须有双引号,键不能是数字
var info = JSON.parse(infoStr)
console.log(info)
应用场景:网络中数据传输本质上是基于字符串进行,如果想要把一个js的对象通过网络发送到某个网站,就需要对对象进行序列化然后发送。(ajax会经常使用)
各语言之间数据类型不一定互通,需要一个中间人(json) python->json->...->json->java
DOM对象 文档对象模型:
是一种用于HTML的编程接口
它给文档(HTML文件)提供了一种结构化的表示方法
可以改变文档的内容和呈现方式
DOM相当于是一个模块,提供了关于HTML文档中对标签进行操作的功能(动态调整文档中的元素)
直接查找选择器:
html代码:
<div class="c1" id="d1"></div>
<div class="c1 c2" id="d2"></div>
document:代表HTML文档对象
document.getElementById(arg) // 根据ID获取一个标签对象
document.getElementsByClassName(arg) // 根据class属性获取标签对象集合
document.getElementsByName(arg) // 根据name属性值获取标签对象集合
document.getElementsByTagName(arg) // 根据标签名获取标签对象集合
示例: var d1 = document.getElementById('d1');
d1.style.height = '600px';
示例2:
创建几个div标签,统一设置为黄色
div{
height: 200px;
width: 200px;
background: yellow;
}
</style>
<div>清明上河图</div>
<div>清明上河图</div>
<div>清明上河图</div>
<script src="test2.js"></script>
然后通过JavaScript代码将第一个div标签改为红色
var a = document.getElementsByTagName("div")
a[0].style.backgroundColor="red"
思考:想全部改变怎么办?
间接查找选择器:
var div1 = document.getElementsByClassName('c1')[0];
div1.nextElementSibling.style.color = 'red'; 找下一个兄弟标签,并改了色
div1.previousElementSibling; 找上一个兄弟
div1.firstElementChild; 找第一个儿子
div1.lastElementChild; 找最后一个儿子
div1.children; 找所有儿子,是一个数组
div1.parentElement; 找到自己的父级标签
// 没孙子
文本操作:
innerText
获取文本:
var a = document.getElementById('d1')
a.innerText; 只获取文本内容
设置文本:
a.innerText = '<a href="">校花</a>'; 不能识别标签,单纯的文本内容
innerHTML
获取文本
var d = document.getElementsByClassName('c1')[0];
d.innerHTML; 获取的内容包含标签
设置文本:
d2.innerHTML = '<a href="">校花</a>'; 能够识别标签,生成标签效果
值操作:针对与用户交互相关的标签(input),操作其中的值
html:
<input type="text" name="username" id="username" >
示例:
var inp = document.getElementById('username'); 找到标签
inp.value; 获取值 (value 用来进行值操作)
inp.value = 'XXX'; 修改值
BOM对象 浏览器对象模型
弹框:
alert('xx');
confirm('are you sure?')
location对象:
location.href; 获取当前页面的地址(url路径)
location.href = 'http://www.baidu.com'; 跳转到这个网址上
location.reload(); 刷新当前页面
计时器
第一种:一段时间之后执行某个任务:
var t = setTimeout("console.log('xxx')",1000);
var t = setTimeout(function(){confirm('你满18岁了吗?')},5000);
t就是浏览器用来记录你的计时器的标识数字:
清除:clearTimeout(t)
第二种:每隔一段时间执行某个任务:
设置:var t = setInterval(function(){confirm('弹个框!!')},3000);
清除:clearInterval(t); //6
筛选器方法:进一步筛选
<ul>
<li>迪丽热巴</li>
<li class="c1">唐艺昕</li>
<li>吴彦祖</li>
<li class="c2">彭于晏</li>
<li>
<span>张天爱</span>
</li>
<li>吴亦凡</li>
</ul>
parent() 找父标签
var c = $('.c1');
c.parent();
父标签
c.parents();
直系的祖先辈
c.parentsUntil('body');
往上找,直到找到哪个标签为止
不包含body标签
children():找子标签
var u = $('ul');
u.children(); 找到所有儿子标签
u.children('.c1'); 找到符合 .c1 的儿子标签
next() :找下面的兄弟
var c = $('.c1');
c.next();
nextAll(); 下面所有兄弟
c.nextUntil('.c2'); 下面到某个兄弟为止,不包含那个兄弟
prev():找上面的兄弟
var c = $('.c1');
c.prev();
c.prevAll(); 上面所有兄弟,注意顺序都是反的
c.prevUntil('.c1'); 上面到某个兄弟为止,不包含那个兄弟
siblings():
c.siblings(); 找到自己的所有兄弟
c.siblings('.c1'); 筛选兄弟中有class值为c1的标签(可以组合)
find() :找后代
$('li').find('span'); 等同于css的 li span选择器
first()/last() :
$('li').first(); 找所有li标签中的第一个
$('li').last(); 找所有li标签中的最后一个
eq(索引值):
$('li').eq(0); 按照索引取对应的那个标签,索引从0开始
$('li').eq(-1); 最后一个
text() 和 html() :同js的innerText和innerHTML
取文本:
c.text(); 不带标签
c.html(); 带标签
设置文本:
c.text('文本');
c.html('文本'); -- 文本--"<a href=''>皇家赌场</a>"
class类值操作 (操作样式一般通过class而不是id)
html代码:
<div class="c1"></div>
css代码:
.c1{
background-color: red;
height: 100px;
width: 100px; }
.c2{
background-color: green; }
jquery代码:
$('div').addClass('c2'); //动态增加类值
$('div').removeClass('c2'); //删除
$('div').toggleClass('c2'); //如果不存在则添加类,如果已设置则删除
示例:
var t = setInterval("$('div').toggleClass('c2');",500);
val值操作
html代码:
<input type="text" id="username">
<input type="radio" class="a1" name="sex" value="1">男
<input type="radio" class="a1" name="sex" value="2">女
<input type="checkbox" class="a2" name="hobby" value="1">抽烟
<input type="checkbox" class="a2" name="hobby" value="2">喝酒
<input type="checkbox" class="a2" name="hobby" value="3">烫头
<select name="city" id="s1">
<option value="1">北京</option>
<option value="2">上海</option>
<option value="3">深圳</option>
</select>
<select name="lover" id="s2" multiple>
<option value="1">波多</option>
<option value="2">苍井</option>
<option value="3">小泽</option></select>
val值操作
jquery代码:
获取值:
文本输人框:$('#username').val();
单选radio框:$('.a1:checked').val(); checked 代表被选中的
多选checkout框:$('.a2:checked').val()是不行的;需要循环取值,如下:
var d = $(':checkbox:checked');
for (var i=0;i<d.length;i++){
console.log(d.eq(i).val());
}
单选select框:$('#city').val();
多选select框:$('#lover').val();
val值操作
jquery代码:
设置值:
文本输入框:$('#username').val('一串文字');
单选radio框:$('.a1').val([2]); #注意内容必须是列表,写的是value属性对应的值
多选checkout框:$('.a2').val(['2','3'])
单选select框:$('#city').val('1');
多选select框:$('#lover').val(['2','3'])
点击事件绑定:
$('.c1').click(function () {
//$(this)表示的就是它自己
$(this).css('background-color','green');
// $('.c1').css('background-color','green');
// $("#d1").css({"background-color":"blue","height":"800px"})
})
python27期jquery:的更多相关文章
- jQuery --- 第四期 (jQuery动效)
学习笔记 1.jQuery动画的淡入淡出 <!doctype html> <html> <head> <meta charset="utf-8&qu ...
- JQuery --- 第二期 (jQuery属性操作)
个人学习笔记 1.JQuery的内容选择器 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- 【技术分享会】 @第四期 JQuery插件
本讲内容 JavaScript JQuery JQuery插件 实例 JavaScript 前端开发工程师必须掌握的三种技能 描述内容的HTML 描述网页样式的CSS 描述网页行为的JavaScrip ...
- JQuery --- 第五期 (JQuery节点操作)
学习笔记 1.JQuery添加节点相关方法 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- python27期前端
第一天笔记:HTML:是一种标识性的语言css:层叠样式表是一种用来表现HTML等文件样式(效果)的计算机语言JavaScript:简称“JS”,是一种属于网络的脚本语言 常用来为网页添加各式各样的动 ...
- python27期day12:推导式、内置函数、高阶函数、匿名函数、作业题
1.推导式:做一些有规律的数据结构 列表推导式: 普通循环模式: [加工后的变量 for 循环] 示例一:print([i for i in range(1,51)]) 结果:[1, 2, 3, 4, ...
- python27期JavaScript:
JavaScript:(简称“JS”) 是一种轻量级的编程语言(ECMAscript5或6)是一种解释性脚本语言(代码不进行预编译)主要用来向HTML页面添加交互行为JavaScript 是互联网上最 ...
- python27期python连接数据库:
import pymysql创建connectinon对象:con = pymysql.connect(host = "localhost",user = "root&q ...
- python27期尚哥讲数据库:
1.下载:https://www.mysql.com/ DOWNLOADS MySQL Community (GPL) Downloads »-- MySQL Community Server Loo ...
随机推荐
- 快速破解Goland
两种激活方式永久激活:推荐优先使用,永久有效有效期激活:如果你实在激活不了又着急使用,这是备选激活方案,简单快捷 一.永久激活 1.下载新版破解补丁 点击链接 https://pan.baidu.co ...
- TensorFlow从1到2(十四)评估器的使用和泰坦尼克号乘客分析
三种开发模式 使用TensorFlow 2.0完成机器学习一般有三种方式: 使用底层逻辑 这种方式使用Python函数自定义学习模型,把数学公式转化为可执行的程序逻辑.接着在训练循环中,通过tf.Gr ...
- MYSQL5.7的安装(yum、二进制、编译安装)
目录 一.环境说明 二.YUM安装 1.安装MYSQL-YUM源 2.安装说明 3.安装前的准备 4.安装 5.启动 三.变更root密码 四.BINARY-INSTALL 1.基础环境准备 2.建立 ...
- python包matplotlib绘制图像
使用matplotlib绘制图像 import matplotlib.pyplot as plt from matplotlib.pyplot import MultipleLocator impor ...
- 题解:swj社会摇入魔第五课
题目链接; solution: 根据画图模拟可以知道除第一次纯下降 其余每次都是一半一半的增加 S=h+h+h/2+h/4+h/8+...; 即S=h+2h=3h #include<bits/s ...
- 80道最新java基础部分面试题(六)
自己整理的面试题,希望可以帮到大家,需要更多资料的可以私信我哦,大家一起学习进步! 59.ArrayList和Vector的区别 答: 这两个类都实现了List接口(List接口继承了Collecti ...
- String的源码理解(未写完)
String本质上是一个char数组(jdk 9之后是byte数组),并且是一个声明为final的数组,并且String的不可变也是通过这种把数组声明为final来实现的 public final c ...
- Python连载53-UDP、TCP、FTP编程实例
一.服务器程序要求永远运行,一般用死循环来处理 1.服务器改造版本V03(主程序 原封不动,这里只修改了运行的程序) if __name__ == "__main__": whil ...
- 【zabbix告警配置】zabbix服务配置邮件告警
一.安装邮件服务 在zabbix_server服务端安装邮件和邮件发送服务,这里可以参考我另一篇邮件服务部署文章:https://www.cnblogs.com/HeiDi-BoKe/p/118833 ...
- MongoDB for OPS 03:分片 shard 集群
写在前面的话 上一节的复制集也就是主从能够解决我们高可用和数据安全性问题,但是无法解决我们的性能瓶颈问题.所以针对性能瓶颈,我们需要采用分布式架构,也就是分片集群,sharding cluster! ...