09.01_操作文本内容
- 操作文本内容
- text():获取全部匹配元素的文本内容
- text(val):设置全部匹配元素的文本内容
- 注意:
- 注意1:元素原来已经存在内容,会被新的内容替换掉
- 注意2:设置文本内容的时候,即使字符串中包含html标签,也会被认为普通的文本
操作文本内容
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<div>
<p>hello</p>
</div>
</body>
<script>
$(document).ready(function(){
/*
* text():获取全部匹配元素的文本内容
* text(val):设置全部匹配元素的文本内容
*
* 注意1:元素原来已经存在内容,会被新的内容替换掉
* 注意2:设置文本内容的时候,即使字符串中包含html标签,也会被认为普通的文本
*/
//获取文本内容
console.log($("div").text());//hello
//设置文本内容
//$("div").text("world");
$("div").text("<span>aaaa</span>");
})
</script>
</html>
09.02_操作HTML内容
- 操作HTML内容
- html():获取第一个匹配的元素的html内容
- html(val):设置全部匹配的html内容
- 注意:
- 内容中如果包含html元素,则会被识别成为html标签
操作HTML内容案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<div>
<p>hello</p>
</div>
</body>
<script>
$(document).ready(function(){
/*
* html():获取第一个匹配的元素的html内容
*
* html(val):设置全部匹配的html内容
* 注意:内容中如果包含html元素,则会被识别成为html标签
*
*/
//获取html内容
console.log($("div").text());//hello
console.log($("div").html());//<p>hello</p>
//设置html内容
//$("div").html("bbbbb");
$("div").html("<font color='red'>hahhhhahahahh</font>");
})
</script>
</html>
09.03_操作元素值
- 操作元素值
- val():用来获取第一个匹配到的元素的value值
- val(val):设置所有匹配的值
- val(arr):用于给checkbox,select,radio等设置值,参数为字符串数组
操作元素值案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<input type="text" value="1234" />
<input type="text" value="4567" />
<select>
<option>111</option>
<option selected="selected">222</option>
<option selected="selected">333</option>
</select>
</body>
<script>
$(document).ready(function(){
/*
* val():用来获取第一个匹配到的元素的value值
* val(val):设置所有匹配的值
* val(arr):用于给checkbox,select,radio等设置值,参数为字符串数组
*/
//value
//注意:获取只匹配到的第一个
console.log($("input").val()); //1234
//设置值
//注意:给所有匹配到的元素设置值
$("input").val("aaaa");
//获取的最后一个
console.log($("select").val());
$("select").val(['aaa','bbb']);
})
</script>
</html>
09.04.操作元素的css样式
- 添加css选择器或者删除
- addClass():添加css类选择器的类名
- removeClass();删除类选择器的类名
- toggleClass();如果存在就删除,如果不存在就添加
操作元素的css样式案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
.box{
width: 200px;
height: 100px;
}
.change1{
color: red;
}
.change2{
background-color: blue;
}
</style>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<div class="box"></div>
</body>
<script>
$(document).ready(function(){
/*
* 添加css选择器或者删除
* addClass():添加css类选择器的类名
* removeClass();删除
* toggleClass();如果存在就删除,如果不存在就添加
*/
$("div").addClass("change1");
$("div").removeClass("change1");
$("div").toggleClass("change2");
})
</script>
</html>
- 修改css样式
- css(name):返回匹配到的第一个元素的样式属性值
- css(name,value):为所有匹配到的设置属性和值
- css({键:值,。。。。})
修改css样式案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
<style type="text/css">
#div2{
width: 150px;
height: 250px;
background-color: palevioletred;
}
</style>
</head>
<body>
<div style="width: 100px; height: 200px; background-color: aqua;" id="div1"></div>
<div id="div2"></div>
<div id="div3" style="width: 100px; height: 100px;"></div>
<div id="div4"></div>
</body>
<script>
// 获取css样式的值
// css("样式名称") : 返回样式的值
// 行内样式
console.log($("#div1").css("background-color"));
// 内部样式
console.log($("#div2").css("width"));
// 修改css样式
// css("样式名称", "样式值") 每次只能设置一个样式
$("#div3").css("background-color", "brown");
// css({"样式1":"值1", "样式2":"值2", ...}) 同时设置多个样式
$("#div4").css({"background-color":"blue", "width":"300px", "height":"300px"});
</script>
</html>
09.05_ jQuery操作DOM(创建节点)
- 创建节点
- 创建一个段落标签并将其添加到div下面 — 相当于 createElement
- 创建元素节点的同时创建了文本节点 — 相当于 createTextNode
- 创建元素属性(id、class、、、)
- 添加append(节点) — 相当于 appendChild
创建节点案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<div></div>
</body>
<script>
$(document).ready(function(){
/*
* 相当于createElement
* 1.创建元素节点:
* $(html标签)
* 2.创建文本节点
* 3.创建属性节点
*/
//1. createElement
//创建一个段落标签并将其添加到div下面
var $jqObj1 = $("<p></p>");
//append appendChild
$("div").append($jqObj1);
//2. 创建元素节点的同时创建了文本节点 createTextNode
var $jqObj2 = $("<p>hello</p>");
$("div").append($jqObj2);
//3. 创建元素属性(id、class、、、)
var $jqObj3 = $("<p id='txt'>hello</p>");
$("div").append($jqObj3);
})
</script>
</html>
09.06_ jQuery操作DOM(插入节点)
- 插入节点
- 在元素内部插入节点
- obj.append(obj) 为所有匹配到的元素追加节点
- obj.appendTo(obj) 为所有匹配到的元素追加节点
在元素内部插入节点案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<div>
</div>
</body>
<script>
$(document).ready(function(){
/*
* obj1.append(obj2):为所有匹配到的元素追加内容
* obj1.appendTo(obj2):
*/
var $p_1 = $("<p>hello</p>");
var $p_2 = $("<p>hello</p>");
var $div = $("div");
//在div中追加p子标签
$div.append($p_1);
//将p_2追加到p_1
$p_2.appendTo($p_1);
})
</script>
</html>
- 在元素外部插入节点
- after(content):在每个匹配的元素之后插入内容
- insertAfter(content):将匹配到的元素插入到指定元素后面
- before()
- insertBefore()
- 内部插入:形成父子标签或者先辈和后辈标签
- 外部插入:形成同辈标签【兄弟标签】
在元素外部插入节点
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<p id="p">*************</p>
<p id="p">*************</p>
</body>
<script>
$(document).ready(function(){
/*
* after(content):在每个匹配的元素之后插入内容
* insertAfter(content):将匹配到的元素插入到指定元素后面
* before()
* insertBefore()
*/
//获取p标签对象
var $p = $("p");
//创建节点
var $p_1 = $("<p>hello</p>");
var $p_2 = $("<p>content</p>");
// 效果有什么区别
$p.after($p_1);
$p_2.insertAfter($p);
})
</script>
</html>
09.07_ jQuery操作DOM(删除节点)
- 删除节点
- obj.remove(); 将匹配到的元素直接删除
- obj.detach();和remove相同
- obj.empty(); 清空节点,如果一个标签有子标签,则全部会被清空
删除节点案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<div>
<p>harder</p>
<p>worker</p>
</div>
</body>
<script>
$(document).ready(function(){
/*
* 需要被删除的节点.remove():
* 将匹配到的元素直接删除
* 需要被删除的节点.detach();
* 和remove相同
* 需要被删除的节点.empty():
* 清空节点,如果一个标签有子标签,则全部会被清空
*/
//将worker对应的p标签删除了
//返回值为被删除节点的引用,还可以继续使用【当做一个标签对象使用】
//var $jqObj1 = $("div p:eq(1)").remove();
//$("div").append($jqObj1);
var $jqObj2 = $("div p:eq(1)").detach();
//注意:删除当前节点以及子节点
$("div p:eq(1)").empty();
})
</script>
</html>
09.08_ jQuery操作DOM(复制节点 & 替换节点)
- 复制节点 & 替换节点
- 复制节点:
- obj.clone() 返回div的一个副本
- 替换节点:
- replaceAll(selector):使得匹配到的元素替换选择器所匹配到的元素
- replaceWith(content):将所有匹配到的元素替换为content【文本内容,html内容】
- 复制节点:
复制和替换节点案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
div1:<div id="div1"></div>
div2:<div id="div2"></div>
</body>
<script>
$(document).ready(function(){
//复制节点
/*
* clone()返回div的一个副本
*/
//返回div的一个副本
var $jqDiv = $("div").clone();
//替换节点
/*
* replaceAll(selector):
* 使得匹配到的元素替换选择器所匹配到的元素
* replaceWith(content):
* 将所有匹配到的元素替换为content【文本内容,html内容】
*/
$("#div1").replaceWith("<div>替换div1文本</div>");
$("<div>替换div2文本</div>").replaceAll("#div2");
})
</script>
</html>
09.09_ jQuery动画(隐藏/显示)
- 隐藏/显示
- btn.bind(“click”,function) 给按钮添加绑定事件
- show(动画持续的时间,回调函数)
- hide(动画持续的时间,回调函数)
隐藏/显示案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#div{
width: 400px;
height: 400px;
background-color: blue;
}
</style>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<div id="div"></div>
<button id="btn1">hide</button>
<button id="btn2">show</button>
</body>
<script>
$(document).ready(function(){
/*
* show(动画持续的时间,回调函数)
* hide(动画持续的时间,回调函数)
* 单位为毫秒
* 回调函数【callback】:当动画执行完成之后需要的操作
* slow:600ms
* normal:400ms
* fast:200ms
*/
//隐藏
//给button绑定一个响应事件
$("#btn1").bind("click",function(){
$("#div").hide(200,function(){
alert("隐藏起来了");
})
})
//显示
$("#btn2").bind("click",function(){
$("#div").show(1000,function(){
alert("显示出来了");
})
})
})
</script>
</html>
09.10_ jQuery动画(切换可见状态(隐藏/显示))
- 切换可见状态(隐藏/显示)
- btn.bind(“click”,function) 给按钮添加绑定事件
- toggle():
- 实现切换元素的可见状态
- 如果元素是可见的,则隐藏,如果元素是隐藏的,则设置可见
切换可见状态(隐藏/显示)案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
div{
width: 100px;
height: 100px;
background-color: blue;
}
</style>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<div id="id00">hello</div>
<div>world</div>
<button id="btn1">切换状态</button>
</body>
<script>
$(document).ready(function(){
//toggle():实现切换元素的可见状态
//如果元素是可见的,则隐藏,如果元素是隐藏的,则设置可见
$("#btn1").bind("click",function(){
$("#id00").toggle(1000,function(){
alert("切换完成");
})
})
})
</script>
</html>
09.11_ jQuery动画(淡入/淡出)
- 淡入/淡出动画
- fadeIn(动画持续的时间,回调函数)
- 淡入
- fadeOut(动画持续的时间,回调函数)
- 淡出
- fadeTo(动画持续的时间,透明度的终点值,回调函数)
- 透明度变化
- fadeIn(动画持续的时间,回调函数)
淡入/淡出案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#box{
width: 100px;
height: 100px;
background-color: blue;
display: none;
}
</style>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<div id="box">hello</div>
<button id="btn1">淡入</button>
<button id="btn2">淡出</button>
<button id="btn3">改变透明度</button>
<button id="btn4">综合</button>
</body>
<script>
$(document).ready(function(){
//fadeIn(动画持续的时间,回调函数)
//fadeOut(动画持续的时间,回调函数)
//fadeTo(动画持续的时间,透明度的终点值,回调函数)
//淡入
$("#btn1").bind("click",function(){
$("#box").fadeIn(2000,function(){
alert("over");
})
})
//淡出
$("#btn2").bind("click",function(){
$("#box").fadeOut(2000,function(){
alert("over");
})
})
//设置透明度
$("#btn3").bind("click",function(){
$("#box").fadeTo(2000,0.15,function(){
alert("over");
})
})
// 综合案例
$("#btn4").bind("click",function(){
$("#box").fadeIn(2000,function(){
$("#box").fadeTo(2000,0.15,function(){
alert("over");
})
})
})
})
</script>
</html>
09.12_ jQuery动画(滑动显示/隐藏(抽屉效果))
- 滑动显示/隐藏
- slidedown(动画持续的时间,回调函数):
- 滑动显示
- slideup(动画持续的时间,回调函数):
- 滑动隐藏
- slideToggle(动画持续的时间,回调函数):
- 切换状态,作用就等同于同时使用slideDown和slideUp
- slidedown(动画持续的时间,回调函数):
滑动显示/隐藏案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
div{
width: 100px;
height: 100px;
background-color: blue;
display: none;
}
</style>
<!--引入jQuery文件-->
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<div id="id">hi man</div>
<button id="btn1">滑动显示</button>
<button id="btn2">滑动隐藏</button>
<button id="btn3">切换状态</button>
</body>
<script>
$(document).ready(function(){
//动画持续的时间,回调函数
//slidedown():滑动显示
//slideup():滑动隐藏
//slideToggle():
//滑动显示
$("#btn1").bind("click",function(){
$("#id").slideDown(2000,function(){
alert("over");
})
})
//滑动隐藏
$("#btn2").bind("click",function(){
$("#id").slideUp(2000,function(){
alert("over");
})
})
//切换状态
//作用就等同于同时使用slideDown和slideUp
$("#btn3").bind("click",function(){
$("#id").slideToggle(2000,function(){
alert("over");
})
})
})
</script>
</html>
09.13_ jQuery动画(自定义动画)
- animate():用于创建自定义动画
- $(selector).animate(设置的属性,动画持续的时间,callback)
- 设置的属性:css的属性【以键值对的形式设置的,单个或者多个】
- 动画持续的时间:单位为毫秒,取值:slow,fast,normal
- callback:动画执行完成之后需要执行的操作,一般情况下callback都使用匿名函数充当
- $(selector).animate(设置的属性,动画持续的时间,callback)
自定义动画案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../js/jquery-3.3.1.js"></script>
<style type="text/css">
div{
background-color: cyan;
width: 100px;
height: 100px;
position: absolute;
}
</style>
</head>
<body>
<button>开始动画</button>
<div></div>
<script>
$(document).ready(function(){
//给按钮绑定事件
$("button").bind("click",function(){
//animate()
//同时设置多个属性
$("div").animate({
left:'250px',
height:'150px',
width:'150px',
opacity:'0.5'
},3000,function(){
alert("over");
});
})
})
</script>
</body>
</html>
09.14_ jQuery动画(动画综合案例–萤火虫)
动画综合案例–萤火虫
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="../js/jquery-3.3.1.js" ></script>
<style type="text/css">
*{
margin: 0;
padding: 0;
background-image: url(../img/bg.jpg);
}
#box{
width: 100%;
height: 100%;
}
img{
width: 20px;
height: 20px;
position: absolute;
background: none;
}
</style>
</head>
<body>
<div id="box"></div>
</body>
<script type="text/javascript">
$(document).ready(function(){
setInterval(function(){
// 创建图片标签,存放萤火虫
var $fireworm = $("<img src='../img/萤火虫.jpg' />");
// 把萤火虫添加到页面
$("div").append($fireworm);
// 随机定位萤火虫的位置
var left00 = Math.ceil(Math.random()*1000);
var top00 = Math.ceil(Math.random()*500);
// 把随机的位置设置给萤火虫
$fireworm.css({
left:left00,
top:top00
})
function fly(){
var toLeft = Math.ceil(Math.random()*1000);
var toTop = Math.ceil(Math.random()*500);
// 设置动画,让萤火虫动起来
$fireworm.animate({
left:toLeft,
top:toTop
},3000,function(){
fly();
})
}
fly();
},3000)
})
</script>
</html>
09.15_ jQuery中的事件
- 页面加载事件
- $(document).ready(function(){})
页面加载事件案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
</body>
<script>
//事件模块中的一个最重要的函数,效率相对较高
/*$(document).ready(function(){
})
//可以简写
//$()不带document的时候其实默认就是document
$().ready(function(){
})
*/
//继续简写
$(function(){
})
/*
* window.onload() 和 $(document).ready()
* $(document).ready()代替了传统的window.onload()
*
* 1.在一个页面中可以无限次的使用$(document).ready(),各个方法之间互不影响,
* 会按照在代码中出现的顺序执行,window.onload()在一个页面中只能使用一次
*
* 2.当一个文档完全下载到浏览器的时候【包括关联的文件,图片,】,就会响应window.onload(),
* $(document).ready当只有文本下载到浏览器,不包括图片,文件等,就会直接响应
* 问题:当耗时的操作【文件,图片等】没有被加载出来的时候,$(document).ready就会被执行,
* 如果在后面的代码中要使用图片,则获取不到
* 解决:window.load()不可以加载
*
*/
$(window).load(function(){
})
</script>
</html>
如有错误,请在下面评论。好及时更正,谢谢!