1.jQuery选择器
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>选择器</title>
<style type="text/css">
.show {
width: 400px;
height: 200px;
border: 1px solid red;
background-color: aquamarine;
}
.box {
background-color: royalblue;
}
</style>
<!-- 注意:script标签不允许自结束 -->
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<script type="text/javascript">
/**
* jQuery的选择器非常强大
* 它完美的兼容css选择器,
* 1、基本选择器(css)
* 逗号选择器,
* 子代选择器
* 后代选择器
* id
* class
* 通配符选择器*
* 2、过滤选择器
* 3、属性选择器(css)
* 4、css3提供的选择器
*/
$(function () {
// id选择器
$("#msg").css("color", "red");
// 类选择器
$(".item").css({
"width": "200px",
"height": "30px",
"border": "1px solid red",
"color": "pink"
});
// 通配符选择
$("*").css("border", "1px solid yellow");
// 逗号选择器
$(".item, #msg").css("border", "1px solid gray");
// 子代选择器
$(".list>li").css("border", "1px solid red")
// 后代选择器
$(".list li").css("border", "1px solid red")
// 选择下一个兄弟节点
$(".active+li").css("border", "1px solid red")
// 选择之后的所有兄弟节点
$(".active~li").css("border", "1px solid red")
// 第一个
$(".item:first").css("color", "red");
$(".item").first().css("color", "red");
// 最后一个
$(".item:last").css("color", "red");
$(".item").last().css("color", "red")
// 第n个元素
$(".item:eq(1)").css("color", "red")
$(".item").eq(2).css("color", "red");
// 大于
$(".item:gt(2)").css("color", "red")
// 小于
$(".item:lt(5)").css("color", "red")
// 奇数行
$(".item:odd").css("background", "red")
.css("width", "500px")
.css("height", "30px");
// 偶数行
$(".item:even").css("background", "darkcyan")
.css("width", "500px")
.css("height", "30px");
// 判断是否存在某个class
console.log($(".show").hasClass("box"))
$(".show").hover(function () {
// 将js对象转换为jQuery,$(DOM对象)
if ($(this).hasClass("box")) {
$(this).removeClass("box")
} else {
$(this).addClass("box");
}
// 这样也可以 如果有则移除 没有则添加
$(this).toggleClass("box");
});
// 通过属性选择器,添加类样式
$("input[type$=tel]").addClass("box");
// 选择具有子元素(包括文本子元素)的标签
$(".item:parent").css("border", "1px solid red");
// 选择包装集的父级
$(".active").parent().css("border", "1px solid red");
$(".active").parent("div").css("border", "1px solid red");
$(".active").parents("ul").css("border", "1px solid red");
// 选择子级标签
$(".list").children().css("border", "1px solid red");
$(".list").children("ul").css("border", "1px solid red");
/**
* find会在选择的包装集上继续向后代选择需要对象
* 面试题:请说明jQuery中find和filter的区别?
*/
$(".list").find("li").css("border", "1px solid red");
// 在选中的包装集上进行二次刷选
$("li").filter(".first").css("border", "1px solid red");
/**
* 如下的选择器都是选择兄弟节点
*/
$(".first~li").css("border", "1px solid red");
// 后面的兄弟节点
$(".first").nextAll("li").css("border", "1px solid red");
// 下一个兄弟节点
$(".first").next("div").css("border", "1px solid red");
// 前面一个兄弟节点
$(".active").prev().css("border", "1px solid red");
// 前面的所有兄弟节点
$(".active").prevAll("li").css("border", "1px solid red")
// 所有的兄弟节点
$(".active").siblings("li").css("border", "1px solid red");
});
</script>
</head>
<body>
<div id="msg">这个是一个div</div>
<ul class="list">
<li class="first">
<ul>
<li>这个是孙子列表1</li>
<li>这个是孙子列表2</li>
<li>这个是孙子列表3</li>
<li>这个是孙子列表4</li>
<li>这个是孙子列表5</li>
</ul>
</li>
<li class="item">这个是一个列表</li>
<li class="item">这个是一个列表</li>
<li class="item active">这个是一个列表</li>
<li class="item">这个是一个列表</li>
<li class="item"></li>
<div id="msg">这个是一个div</div>
<ul>
<li class="item"></li>
<li class="item">这个是一个列表</li>
<li class="item">这个是一个列表</li>
</ul>
</ul>
<div class="show box">
</div>
<input type="tel" name="" id="" value="" />
</body>
</html>
2jQuery动画
系统的动画方法
jQuery提供了强大的动画API的支持,包括十种三类动画效果
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.box {
margin-top: 50px;
height: 250px;
width: 250px;
border: 1px solid purple;
background-color: black;
}
</style>
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<script type="text/javascript">
function myHide() {
/**
* 如果hide中传递字符串,那么可以传递如下三个字符串
* slow normal fast
*/
// $(".box").hide("fast");
// $(".box").hide("normal");
// $(".box").hide("slow");
/**
* 如果hide中传递数字,则表示动画执行的时间,单位是毫秒
*/
$(".box").hide(2000);
}
function myShow() {
$(".box").show(2000);
}
function change() {
$(".box").toggle(2000);
}
function myHide2() {
$(".box").fadeOut(2000);
// $(".box").fadeTo(2000, 0.2, function() {
// $(".box").fadeTo(2000, 1);
// })
}
function myShow2() {
$(".box").fadeIn(2000);
}
function change2() {
$(".box").fadeToggle(2000);
}
function myHide3() {
$(".box").slideUp(2000)
}
function myShow3() {
$(".box").slideDown(2000);
}
function change3() {
$(".box").slideToggle(2000);
}
</script>
</head>
<body>
<button onclick="myHide()">缩放消失</button>
<button onclick="myShow()">缩放显示</button>
<button onclick="change()">缩放变化</button>
<button onclick="myHide2()">透明度隐藏</button>
<button onclick="myShow2()">透明度显示</button>
<button onclick="change2()">透明度变化</button>
<button onclick="myHide3()">卷帘隐藏</button>
<button onclick="myShow3()">卷帘显示</button>
<button onclick="change3()">卷帘变化</button>
<br />
<div class="box"></div>
</body>
</html>
3.常见API操作
4.jQuery DOM操作
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jQuery DOM操作</title>
<script src="js/lib/jquery-1.12.4.js"></script>
<script type="text/javascript">
$(function () {
/**
* 子节点的操作
*/
// append 为包装集增加最后一个子节点
$(".list").append("<li>刘建宏是个大帅锅~~</li>");
// prepend 为包装集增加第一个子节点
$(".list").prepend("<li>这个是第一个li</li>");
// 变种写法
$("<div>嘿嘿</div>").appendTo(".list");
$("<div>嘿嘿</div>").prependTo(".list");
/**
* 兄弟节点的操作
*/
$(".active").before("<li>这个是一个新的节点</li>");
$(".active").after("<div>这个是之后的一个兄弟节点</div>")
$(".active").insertAfter(".show")
$("<li>这个是一个新的节点</li>").insertAfter(".show");
$("<li>这个是一个新的节点</li>").insertBefore(".active");
// 父节点操作
$("ul").wrap("<div class='container'></div>");
// js中DOM对象是无法自杀的,父级可以移除子集
var node = document.getElementsByClassName("active")[0];
node.parentNode.removeChild(node)
// jQuery 可以自杀
$(".active").remove();
// 复制克隆节点
$(".msg").append($(".active").clone())
});
</script>
</head>
<body>
<ul class="list">
<li>这个是列表1</li>
<li>这个是列表2</li>
<li>这个是列表3</li>
<li class="active">这个是列表4</li>
<li class="show">这个是列表5</li>
<li>这个是列表6</li>
<li>这个是列表7</li>
<li>这个是列表8</li>
<li>这个是列表9</li>
<li>这个是列表10</li>
</ul>
<div class="msg"></div>
</body>
</html>
5.jQuery事件处理
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery处理事件</title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js">
</script>
</head>
<body>
<button id="btn">内容</button>
<script type="text/javascript">
$(function () {
// 获取节点,使用对应是事件函数完成事件的绑定
$("#btn").click(function (e) {
alert("事件被触发了……")
console.info(e)
})
/**
* 事件监听 jQuery
*/
$("#btn").on("click", function (e) {
alert("事件被触发了……")
})
/**
* 在jQuery中on 和bind 绑定事件是存在区别的,
* 3.x版以及取消了bind方法
* on 还可以做事件委托
*/
$("#btn").on("click", "body", function () {});
// 事件最后由body处理
$("body").click(function () {
alert("body 触发了click事件")
})
});
</script>
</body>
</html>