内容概述:
显示隐藏、淡入淡出、向上向下卷起
操作元素的属性
表单相关事件
jQuery 正则
常用的事件
显示隐藏、淡入淡出、向上向下卷起
hide() 隐藏
show() 显示
toggle() 切换显示和隐藏
fadeIn() 淡入
fadeOut 淡出
fadeToggle() 切换淡入和淡出
slideUp() 向上卷起
slideDown() 向下展开
slideToggle() 切换向上向下
stop() 可以只保留最后一次动画
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.box {
width: 200px;
height: 200px;
background: gold;
/* display: none; */
}
</style>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $btn = $('#btn');
var $div = $('.box');
$btn.click(function(){
// 制作显示和隐藏的动画
// $div.hide(); // 隐藏
// $div.show(); // 显示
// $div.toggle(); // 切换显示也隐藏
// 制作淡入和淡出动画
// $div.fadeIn(); // 淡入
// $div.fadeOut(); // 淡出
// $div.fadeToggle(); // 切换淡入和淡出
// 制作向下展开和向上卷起的动画
// $div.slideUp(); // 向上卷起
// $div.slideDown(); // 向下展开
// $div.slideToggle(); // 切换向上和向下
// 切换效果时每次点击都会被记录,jQuery会执行完每一次,stop可以在快速点击时只让最后一次生效
$div.stop().slideToggle();
})
})
</script>
</head>
<body>
<input type="button" value="动画" id="btn">
<div class="box"></div>
</body>
</html>
操作元素的属性
prop() 取出或者设置某个属性的值
html() 取出或者设置 html 内容,等于 innerHTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $a = $('#link01')
var $div = $('#div1')
// 读取属性值
var sId = $a.prop('id');
// console.log(sId);
// 写入或者叫做设置属性值
$a.prop({'href':'http://www.jandan.net/ooxx','title':'这是去到小姐姐图片的链接','className':'big'});
// 操作元素包裹的内容
// 读取内容
var sTr = $div.html();
// 写入也叫做设置或者修改元素包裹的内容
$div.html('改变的文字');
$div.html('<ul><li>列表文字</li></ul><ul><li>列表文字</li></ul>');
})
</script>
</head>
<body>
<a href="#" id="link01">一个链接</a>
<div id="div1">这是一个div</div>
</body>
</html>
表单相关事件
blur() 文本框失去焦点
sumbit() 表单提交事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $form = $('#form01'),
$txt = $('#input_txt'),
$sub = $('#input_sub')
$txt.blur(function(){
// console.log('失去焦点');
var sVal = $(this).val();
console.log(sVal);
})
// 绑定表单提交事件
$form.submit(function(){
// console.log('提交了')
// 阻止表单的默认提交行为
return false;
})
})
</script>
</head>
<body>
<form action="" id="form01">
<input type="text" name="username" id="input_txt">
<br><br>
<input type="submit" id="input_sub" value="提交">
</form>
</body>
</html>
正则
jQuery 正则表达式和 python 基本上一样,用法上有些区别
jQuery 默认是非贪婪
正则表达式的写法:
var re = new RegExp(‘规则’,‘可选参数’)
var re = /规则/参数
正则字符
匹配单个字符:. , \d, \D, \s, \S, \w, \W,[],\b(匹配单词边界),\B(匹配非单词边界)
匹配多个字符:*,+,?,{}
匹配开头结尾:^, $
修饰参数
g: global, 全文搜索,默认搜索到第一个结果停止
i: ingore case, 忽略大小写,默认大小写敏感
常用函数
test
用法:正则.test(字符串) 匹配成功,就返回真,否则就返回假
正则默认规则
默认非贪婪,匹配成功就结束,不会继续匹配,区分大小写
在正则前后加上匹配开头结尾可以让正则全匹配
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
// 创建正则表达式
// 第一种方式:
var reTest01 = new RegExp('a');
// 第二种方式:
var reTest02 = /a/;
var reTest03 = /a/i; // i 不分大小写
// test 函数是懒惰的,需要在正则中设置开头和结尾
var reTest04 = /^\d+$/;
var sTr01 = 'abc';
var sTr02 = 'Abc';
var sTr03 = '12321312312';
var sTr04 = '1233435sdfa';
// 使用正则表达式
// console.log(reTest02.test(sTr01));
// console.log(reTest02.test(sTr02));
// console.log(reTest03.test(sTr02));
console.log(reTest04.test(sTr03));
console.log(reTest04.test(sTr04));
</script>
</head>
<body>
</body>
</html>
常用的事件
focus() 元素获得焦点
mouseover() 鼠标进入(进入子元素也触发)
mouseout() 鼠标离开(离开子元素也触发)
mouseenter() 鼠标进入(进入子元素不触发)
mouseleave() 鼠标离开(离开子元素不触发)
hover() 同时为 mouseenter 和 mouseleave 事件指定处理函数
ready() DOM 加载完成 ,jQuery 库的 $ 函数封装了 ready 事件
$(document).ready(function(){})
$(function(){})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $Input = $('#input01');
// 一般不在 focus 事件上绑定函数
/* $Input.focus(function(){
console.log('获得焦点!')
}) */
// focus 一般用在 inpu 输入框默认获取焦点
$Input.focus();
})
</script>
</head>
<body>
<input type="text" id="input01">
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.box{
width: 200px;
height: 200px;
background: #555;
margin: 100px auto;
}
.box2{
width: 100px;
height: 100px;
background: green;
}
</style>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $div = $(".box");
// mouseover 和 mouseout 移入子元素也会触发
/* $div.mouseover(function(){
$(this).animate({'margin-top':150})
})
$div.mouseout(function(){
$(this).animate({'margin-top':100})
}) */
// mouseenter 和 mouseleave 移入子元素不会触发 阻止事件冒泡
/* $div.mouseenter(function(){
$(this).animate({'margin-top':150})
})
$div.mouseleave(function(){
$(this).animate({'margin-top':100})
}) */
// 上面两句可以用 houver 事件合并成一句
$div.hover(function(){
$(this).animate({'margin-top':150})
},function(){
$(this).animate({'margin-top':100})
})
})
</script>
</head>
<body>
<div class="box">
<div class="box2"></div>
</div>
</body>
</html>