jQuary学习(一)
一、jQuary简介
- jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。
- jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
- jQuery 对象就是通过jQuery包装DOM对象后产生的对象
二、寻找元素(重要的选择器和筛选器)
2.1选择器
2.1.1 基本选择器 $("*") $("#id") $(".class") $("element") $(".class,p,div")
2.1.2层级选择器 $(".outer div")
$(".outer>div") 在给定的父元素下匹配所有的子元素,只有子
$(".outer+div") 匹配所有紧接在 outer 元素后的 div 元素,有子有孙
$(".outer~div") 匹配 outer元素之后的所有 siblings 元素
2.1.3 基本筛选器 $("li:first") $("li:eq(2)") $("li:even") $("li:gt(1)")
2.1.4 属性选择器 $('[id="div1"]') $('["alex="sb"][id]')
2.1.5 表单选择器 $("[type='text']")----->$(":text") 注意只适用于input标签
$("input:checked")
2.2 筛选器
2.2.1 过滤筛选器
$("li").eq(2) $("li").first() $("ul li").hasclass("test")
2.2.2 查找筛选器
$("div").children(".test") $("div").find(".test")
$(".test").next() $(".test").nextAll() $(".test").nextUntil()
$("div").prev() $("div").prevAll() $("div").prevUntil()
$(".test").parent() $(".test").parents() $(".test").parentUntil()
$("div").siblings()
三 操作元素(属性 CSS 和 文档处理)
3.1 属性操作
$("p").text() $("p").html() $(":checkbox").val()
$(".test").attr("alex") $(".test").attr("alex","sb")
$(".test").attr("checked","checked") $(":checkbox").removeAttr("checked")
$(".test").prop("checked",true)
$(".test").addClass("hide")
3.1 this的两种用法
方法一
<body> <div id="div" onclick="func1(this)" >hello </div>
<script>
function func1(self) {
console.log(self.getAttribute("id"))
} </script>
</body>
方法二
<body> <div id="div" >hello </div>
<script>
document.getElementById("div").onclick=function () {
console.log(this.getAttribute("id"))
} </script>
</body>
实例
模态对话框
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{margin: 0;}
#div1{
width: 100%;
position: fixed;
top: 0;
left: 0;
height: 2000px;
background-color: #b4b4b4;
z-index: 1000;
}
#div2{
width: 100%;
z-index:1001;
position: fixed;
top:0;
left: 0;
right:0;
bottom: 0;
background-color: red;
opacity: 0.1;
}
#div3{
height: 200px;
width:500px;
background-color: whitesmoke;
position:absolute;
top:50%;
left: 50%;
margin-top: -100px;
margin-left: -250px;
z-index:1002;
border: 1px floralwhite solid;
border-radius: 10%;
}
.hide{
display: none;
}
#div3 input{
display: inline-block;
position: absolute;
right: 25%;
bottom: 20%;
width: 100px;
height: 40px;
}
</style>
</head>
<body>
<div id="div1">
<input type="button" value="click" onclick="show(this)">
</div>
<div id="div2" class="div hide"></div>
<div id="div3" class="div hide">
<input type="button" value="cancel" onclick="cancel(this)">
</div>
<script src="jquery-3.3.1.min.js"></script>
<script>
function show(self) {
$(self).parent().siblings().removeClass("hide");
}
function cancel(self) {
$(self).parent().parent().children("#div2,#div3").addClass("hide");
}
</script>
</body>
</html>
编辑框正反选
<body>
<button onclick="selectall();">全选</button>
<button onclick="cancel();">取消</button>
<button onclick="reverse();">反选</button> <table border="1" id="Table">
<tr>
<td><input type="checkbox"></td>
<td>111</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>222</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>333</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>444</td>
</tr>
</table>
<script src="jquery-3.3.1.min.js"></script>
<script>
function selectall() {
$("#Table :checkbox").each(function(){
$(this).prop("checked",true);
})
}
function cancel() {
$("#Table :checkbox").each(function(){
$(this).prop("checked",false);
})
}
function reverse() {
$("#Table :checkbox").each(function(){
if ($(this).prop("checked")){
$(this).prop("checked",false);
}else{
$(this).prop("checked",true);
}
})
} </script>
</body>
table切换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0px;
padding: 0px;
}
.tab_outer{
margin: 0px auto;
width: 60%;
}
.menu{
background-color: #cccccc;
line-height: 40px;
}
.menu li{
display: inline-block;
}
.menu li{
border-right:1px solid red;
padding:5px;
}
.hide{
display: none;
}
.content{
background-color: beige;
border: 1px solid gray;
height: 300px;
}
.current{
background-color: darkgrey;
color: yellow;
border-top: solid 2px greenyellow;
}
</style>
</head>
<body> <div class="tab_outer">
<ul class="menu">
<li xxx="c1" class="current" onclick="tab(this)">菜单一</li>
<li xxx="c2" onclick="tab(this)">菜单二</li>
<li xxx="c3" onclick="tab(this)">菜单三</li>
</ul>
<div class="content">
<div id="c1">内容一</div>
<div id="c2" class="hide">内容二</div>
<div id="c3" class="hide">内容三</div>
</div> </div>
<script src="jquery-3.3.1.min.js"></script> <script>
function tab(self){
$(self).addClass("current").siblings().removeClass("current");
var cont_id=$(self).attr("xxx");
$("#"+cont_id).removeClass("hide").siblings().addClass("hide") }
</script> </body>
</html>
3.3 CSS操作
3.2.1(样式) css("{color:'red',backgroud:'blue'}")
3.2.2(位置) offset() position() scrollTop() scrollLeft()
3.2.3(尺寸) height() width()
3.4 文档处理
内部插入 $("#c1").append("<b>hello</b>") $("p").appendTo("div")
prepend() prependTo()
外部插入 before() insertBefore() after insertAfter()
replaceWith() remove() empty() clone()
内部插入
<body>
<input type="text" value="123">
<input type="checkbox" name="hobby">
<p>hello p</p>
<div id="div1">
<p>hello p</p>
<p>hello pr</p>
</div> <script src="jquery-3.1.1.js"></script>
<script> var ele=$("p")
ele.appendTo($("#div1")) </script>
</body>
实例 clone方法的应用
<body> <div id="outer">
<div id="item">
<input type="button" value="+" onclick="func1(this)">
<input type="text">
</div>
</div> <script src="jquery-3.3.1.min.js"></script>
<script>
function func1(self){
var Clone=$(self).parent().clone();
Clone.children(":button").val("-").attr("onclick","func2(this)");
$("#outer").append(Clone);
}
function func2(self) {
$(self).parent().remove();
} </script>
</body>
实例,滚动菜单,阅读小说页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
}
.head{
height: 48px;
background-color: #336699;
}
.menu{
position: absolute;
top:48px;
left: 200px;
bottom: 0px;
width: 280px;
background-color: darkgray;
}
.menu a{
display: block;
}
.active{
background-color: #336699;
color: white;
}
.fafafa{
position: fixed;
top:0;
} .content{
position: absolute;
left:480px;
right: 200px;
bottom: 0;
top:48px;
/*overflow: auto;*/ /*加上之后顶部不随滚动条移动*/
background-color: bisque;
border:1px solid gray;
}
</style>
</head>
<body>
<div class="head">
<div class="head_menu"></div>
</div>
<div id="menu" class="menu">
<a b="1">第一章</a>
<a b="2">第二章</a>
<a b="3">第三章</a>
<a b="4">第四章</a>
</div>
<div class="content">
<div id="li1" a="1" style="height: 500px;background-color: rebeccapurple"></div>
<div id="ii2" a='2' style="height: 900px;background-color: #303a40"></div>
<div a='3' style="height: 1000px;background-color: #84a42b"></div>
<div a='4' style="height: 50px;background-color: #336699"></div>
</div>
<div onclick="GoTop()" style="cursor:pointer;position:fixed;right: 0;bottom:0;width: 50px;height: 50px;background-color: #303a40;color: white;border: 1px solid red;" >返回顶部</div>
<script src="jquery-3.3.1.min.js"></script>
<script>
function GoTop(){
//滚动条顶部位置设为0
$(window).scrollTop(0)
}
//窗口内滚动滑轮即触发该方法
window.onscroll=function () {
var scrollTop = $(window).scrollTop();
if (scrollTop>48){
$('#menu').addClass("fafafa");
}else{
$('#menu').removeClass("fafafa");
$('#menu a').removeClass('active');//消除再次回到顶部时,第一章仍然亮的bug
}
$(".content").children().each(function(){
var eleTop = $(this).offset().top; //offset获取元素的顶部位置和左侧位置
var winTop = eleTop-scrollTop; //实时的元素顶部与窗口顶部距离
var winBottomTop = eleTop+$(this).height()-scrollTop; //实时的元素底部与窗口顶部距离
var docHeight = $(document).height();//整个文档的高度
var winHeight = $(window).height();//整个窗口的高度
if (docHeight-winHeight == scrollTop){ //如果已经到了底部,直接让最后一章菜单变色
$('#menu a:last').addClass("active").siblings().removeClass('active');
}else{
if (winTop<=0 && winBottomTop>0){
var a = $(this).attr('a');//找到同样属性值的菜单
$("#menu a[b="+a+"]").addClass("active").siblings().removeClass('active');
//不再继续检测其他内容了
return;
}
} })
}
</script>
</body>
</html>
实例 京东轮播图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style-type: none;
}
#outer{
margin: 0 auto;
margin-top: 50px;
width: 590px;
height: 470px;
position: relative;
}
.img li{
position: absolute;
top: 0;
left: 0;
}
.num{
position: absolute;
width: 100%;
bottom: 20px;
text-align: center; }
.num li{
display: inline-block;
background-color: #cccccc;
height: 20px;
width: 20px;
color: #ffffff;
text-align: center;
line-height: 20px;
border-radius: 50%;
margin: 0 5px;
}
.but{
position: absolute;
height: 60px;
width: 30px;
color: white;
font-size: 20px;
background-color: #b4b4b4;
line-height: 60px;
text-align: center;
top: 50%;
margin-top: -30px;
display: none;
}
.but-l{
left:0;
}
.but-r{
right: 0;
}
#outer:hover .but{
display: block;
}
.num .current{
background-color: red;
} </style>
</head>
<body>
<div id = 'outer'>
<div class="img">
<ul>
<li><a><img src="img/1.jpg"></a></li>
<li><a><img src="img/2.jpg"></a></li>
<li><a><img src="img/3.jpg"></a></li>
<li><a><img src="img/4.jpg"></a></li>
<li><a><img src="img/5.jpg"></a></li>
</ul>
</div>
<div class="num">
<ul>
<li class="current">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
<div class="but-l but"> < </div>
<div class="but-r but" > > </div>
</div>
<script src="jquery-3.3.1.min.js"></script>
<script>
//当鼠标悬浮到底部数字时,数字变红,同时出现相对应的图片
$('.num li').mouseover(function () {
$(this).addClass('current').siblings().removeClass('current');
//通过index能够获得this的索引值
var index = $(this).index();
$('.img li').eq(index).fadeIn(1000).siblings().fadeOut(1000);
i = index;
})
//图片与数字随时间自动轮播
var time =setInterval(move,1500); //定义函数,经过1.5s运行move函数
var i = 0;
function move() {
//当轮播到最后一个后,再从头开始
if (i==4){
i = -1;
}
i++;
$('.num li').eq(i).addClass('current').siblings().removeClass('current');
$('.img li').eq(i).stop().fadeIn(1000).siblings().stop().fadeOut(1000); //加上stop(),停止其他动画再进行后面的动画
}
//定义一个方法,当鼠标悬浮到图片时,停止自动轮播
$("#outer").hover(function () {
clearInterval(time);
},function () {
time =setInterval(move,1500);
})
$(".but-r").click(function () {
move();
})
function moveL() {
//当轮播到第一个时,再最后开始
if (i==0){
i = 5;
}
i--;
$('.num li').eq(i).addClass('current').siblings().removeClass('current');
$('.img li').eq(i).fadeIn(1000).siblings().fadeOut(1000);
}
$(".but-l").click(function () {
moveL();
})
</script>
</body>
</html>
jQuary学习(一)的更多相关文章
- jQuary学习の三の效果展示
一.隐藏显示 1.$(selector).hide(speed,callback);2.$(selector).show(speed,callback); 可选的 speed 参数规定隐藏/显示的速度 ...
- jQuary学习の二の语法
jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作.基础语法: $(selector).action() 美元符号定义 jQuery 选择符(selector)"查询& ...
- jQuary学习の一の初期准备
jQuery 的功能概括: 1.html 的元素选取 2.html的元素操作 3.html dom遍历和修改 4.js特效和动画效果 5.css操作 6.html事件操作 7.ajax异步请求方式 通 ...
- jQuary学习の五のAJAX
AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. 一.jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. loa ...
- jQuary学习の四の遍历
向上遍历DOM树: parent():返回被选元素的直接父元素 parents():返回被选元素的所有祖先元素(当后边参数存在时则表示其中与参数相同的祖先元素) parentsUntil()返回介于两 ...
- jQuery学习-什么是jquery? Js与jquery之间的关系 Jquery选择器
1. 什么是jQuery以及学习的意义等 jQuery是一个js库 JS库是什么? 把常用的方法,进行封装,封装到一个单独的js文件当中,要用的时候直接调用. 学习jQuery主要学什么? 学习jQ ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
随机推荐
- MySQL8.0 存储引擎(InnoDB )buffer pool的实现原理
数据库为了高效读取和存储物理数据,通常都会采用缓存的方式来弥补磁盘IO与CPU运算速度差.InnoDB 作为一个具有高可靠性和高性能的通用存储引擎也不例外,Buffer Pool就是其用来在内存中 ...
- css小技巧【让背景最少是屏幕高度】【让三个字和四个字左右对齐】
怎么让背景最少是屏幕高度 min-height: 100vh; 怎么让三个字和四个字左右对齐 text-align-last: justify;
- 数据类型之字符串(string)(四)
字符串本质是:字符序列不可变1.字符串编码,Unicode ord('A') ord('王') 2.创建字符串,引号 a = 'Hello python!' b = "I'm a teach ...
- 已拦截跨源请求:同源策略禁止读取位于 http://192.168.2.104:8080/sockjs-node/info?t=1615356410656 的远程资源。(原因:CORS 请求未能成功)
本人用的是火狐浏览器 是由于版本过低导致的被拦截,更新火狐为最新版本即可
- CSS3图片自适应各种尺寸的屏幕
img { max-width: 100%; height: auto;} 设置最大宽度,高度自适应.
- 论文阅读: CCF A 2021 PROGRAML:用于数据流分析和编译器优化的基于图的程序表示 (PMLR)
Motivation: 编译器实现是一项复杂而昂贵的活动.出于这个原因,人们对使用机器学习来自动化各种编译器任务产生了极大的兴趣,大多数工作都将注意力限制在选择编译器启发式或做出优化决策.现有的基 ...
- app内嵌H5踩坑
内嵌的H5是用的vue2版本开发的,期间有很多的坑要踩: 1.调用app返回上一个页面不触发页面的onmouted和window.onPageShow app返回上一个页面调用的方法并不会出发vue的 ...
- 高校github课程资源汇总
序号 学校名称 学校类型 课程资源链接 1 清华大学 Top 计算机系课程攻略 https://github.com/Salensoft/thu-cst-cracker https://github. ...
- java中的ConcurrentModificationException是什么异常?在哪些场景下会报该异常?
在软件构造实验Lab2的ConcreteVerticesGraph里,需要我们编写remove()方法.移除一个点没有别的方法,只有遍历集合vertices(),找到该点并移除. 当时我没有写上红框中 ...
- Kubernetes--容器重启策略和Pod终止过程
容器的重启策略 容器程序发生崩溃或容器申请超出限制的资源等原因都可能会导致Pod对象的终止,此时是否应该重建该Pod对象则取决于其重启策咯(restartPolicy)属性的定义. 1)Always: ...