一、jQuery简介

  1、可用的jQuery服务器网站:https://www.bootcdn.cn/

   jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理
HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。

  jQuery的引入

    <script src='jquery 3.3.1.js'></script>//引入jQuery代码(模块)
<script type="text/javascript"> //写自己的js或者jquery代码 </script>

二、jQuery与dom对象的关系

(1)jQuery是dom对象的集合;
(2)jQuery和dom对象的方法和属性是隔离的,不能瞎用;
(3)$ <==>jQuery;等价的
两者之间的转换关系
$('选择器')[索引] ----> dom对象
$('dom对象') ----> jquery对象

三、选择器

  1、基础选择器

$("*")  $("#id")   $(".class")  $("element")  $(".class,p,div")

  

  2、层级选择器(>:儿子选择器;+:毗邻选择器;~:弟弟选择器)

$(".outer div")  $(".outer>div")   $(".outer+div")  $(".outer~div")

  3、基本筛选器(even:偶数;odd:奇数;lg:小于)

$("li:first")  $("li:eq(2)")  $("li:even") $("li:gt(1)")

  4、属性选择器

基本语法:$("[属性1][属性2]...")
$('[id="div1"]')   $('["alex="sb"][id]')

  5、表单选择器

$("[type='text']")----->$(":text")         注意只适用于input标签  :
$("input:checked")

  6、表单属性选择器

    :enabled
:disabled
:checked
:selected
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery</title>
</head>
<body>
<div class="c1" id="i1">DIV</div> <div class="c2">
<p class="c4">111</p>
<a href="">click</a>
</div>
<div class="p1">
<p class="c3" id="i3">222</p>
<p class="c3">333</p>
<p class="c3" id="i2">444</p>
<div>
<p>孙子</p>
</div>
<p class="c3">555</p>
<p class="c3 c8">666</p>
<p class="c3">777</p>
<p class="c3">888</p>
</div> <div alex="123" peiqi="678">alex和配齐</div>
<div alex="123">alex</div>
<div alex="234">egon</div>
<div peiqi="678">8888</div>
<div class="c5">
<input type="checkbox" name='in' value='456'>111
<input type="checkbox" name='in' checked="checked">222
<input type="checkbox" name='in'>333
</div>
<select>
<option value="1">Flowers</option>
<option value="2" selected="selected">Gardens</option>
<option value="3" selected="selected">Trees</option>
</select> <hr> <div class="c6" yuan="123">123</div>
<div class="c7" yuan="234">234</div> <div class="c9">
<p>111</p>
<p>222</p>
<div class="c10">
<p>333</p>
</div>
<a href="">click</a>
</div> <script src='jquery 3.3.1.js'></script>//引入jQuery代码(模块)
<script type="text/javascript">
//写自己的js或者jquery代码
// 基本选择器
// $('*').css('color','red');//通用选择器,选择所有
// $('p').css('color','green');//元素选择器
// $('#i1').css('color','red');//ID选择器
// $('.c3').css('color','red');//类选择器 //层级选择器
// $('.p1 p').css('color','red');//子孙选择器
// $('.p1>p').css('color','red');//儿子选择器
// $('.c8+p').css('color','red');//毗邻选择器,只选择挨着的第一个指定标签
// $('.c8~p').css('color','red');//弟弟选择器 //基本筛选器
// $('.p1 p:eq(3)').css('color','red');//选择索引为3的那个标签,返回值为dom对象
// $('.p1 p:first').css('color','red');//第一个
// $('.p1 p:last').css('color','red');//最后一个
// $('.p1 p:even').css('color','red'); //偶数
// $('.p1 p:lt(2)').css('color','red'); //小于
// $('.p1 p:gt(2)').css('color','red'); //大于 // 属性选择器
// $('[alex]').css('color','red'); //属性名查找
// $('[alex="123"]').css('color','red');//key=value查找
// $("[alex='123'][peiqi='678']").css('color','red');//注意引号区分,多属性之间用[]区分,属性之间不能用空格 //表单选择器
// $(':checkbox');//获取到复选框的输入标签jquery对象
// $('[type="checkbox"]'); </script>
</body>
</html>

选择器演示示例代码

  注意:jquery下载好,并加载好,再交给浏览器解析.

四、筛选器进阶

  1、取文本方法

取值------------------------------------------------------------------
$('选择器')eq(2).html(); 获取第二个元素内部的html文本(包含标签);
$('选择器')eq(2).text();只获取第二个元素中的文本内容;
赋值------------------------------------------------------------------
$('选择器')eq(2).html('值'); html文本形式替换标签中的内容;
$('选择器')eq(2).text('值'); 字符串形式替换内容;

  

  2、过滤筛选器

$("li").eq(2)  //选择第二个元素
$("li").first() //获取到第一个元素
$("ul li").hasclass("test") //判断是否有class='test'属性,按照or判断,有就返回True
$(".c3:"+"eq("+index+")") ;
1、结果是一个dom对象;
2、需要做字符串的拼接;
如:var index=3;
$(".c3:"+"eq("+index+")").css("color","red"); $(".c3").eq(index)
1、结果是一个$对象;
2、不需要拼接,比较好用;
如:var index=3;
$(".c3").eq(index).css("color","red");

$(' :eq(index)')与$(' ').eq(indext)对比

  3、查找选择器(导航选择器)

        // 子--子孙
// $('.c9').children('p').css('color','red');//找所有的儿子里面的p标签
// $('.c9').find('p').css('color','red');//找子孙后代所有的p标签
// $(".p1").children(":first").css("color","red");
//$(".p1").children().first().css("color","red");
//兄弟(next)
// $('#i2').next().css('color','red');//找i2下一个兄弟标签
// $('#i2').nextAll().css('color','red');//找i2下面所有的兄弟标签
// $('#i2').nextUntil('.c8').css('color','red');//选择直到.c8位置的兄弟标签,去头去尾取中间
//兄弟(prev)
// $('#i2').prev().css('color','red');//找i2先前的一个兄弟标签
// $('#i2').prevAll().css('color','red');//找i2先前所有的兄弟标签
// $('#i2').prevUntil('#i3').css('color','red');//选择直到#i3位置的兄弟标签,去头去尾 //父亲(parent)
// $('#i2').parent().css('color','red');//找i2的父亲标签
//$('#i2').parents('可以给定条件').css('color','red');//找i2的祖先标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery</title>
</head>
<body>
<div class="c1" id="i1">DIV</div> <div class="c2">
<p class="c4">111</p>
<a href="">click</a>
</div>
<div class="p1">
<p class="c3" id="i3">222</p>
<p class="c3">333</p>
<p class="c3" id="i2">444</p>
<div>
<p>孙子</p>
</div>
<p class="c3">555</p>
<p class="c3 c8">666</p>
<p class="c3">777</p>
<p class="c3">888</p>
</div> <div alex="123" peiqi="678">alex和配齐</div>
<div alex="123">alex</div>
<div alex="234">egon</div>
<div peiqi="678">8888</div>
<div class="c5">
<input type="checkbox" name='in' value='456'>111
<input type="checkbox" name='in' checked="checked">222
<input type="checkbox" name='in'>333
</div>
<select>
<option value="1">Flowers</option>
<option value="2" selected="selected">Gardens</option>
<option value="3" selected="selected">Trees</option>
</select> <hr> <div class="c6" yuan="123">123</div>
<div class="c7" yuan="234">234</div> <div class="c9">
<p>111</p>
<p>222</p>
<div class="c10">
<p>333</p>
</div>
<a href="">click</a>
</div> <script src='jquery 3.3.1.js'></script>//引入jQuery代码(模块)
<script type="text/javascript">
//写自己的js或者jquery代码
// 基本选择器
// $('*').css('color','red');//通用选择器,选择所有
// $('p').css('color','green');//元素选择器
// $('#i1').css('color','red');//ID选择器
// $('.c3').css('color','red');//类选择器 //层级选择器
// $('.p1 p').css('color','red');//子孙选择器
// $('.p1>p').css('color','red');//儿子选择器
// $('.c8+p').css('color','red');//毗邻选择器,只选择挨着的第一个指定标签
// $('.c8~p').css('color','red');//弟弟选择器 //基本筛选器
// $('.p1 p:eq(3)').css('color','red');//选择索引为3的那个标签,返回值为dom对象
// $('.p1 p:first').css('color','red');//第一个
// $('.p1 p:last').css('color','red');//最后一个
// $('.p1 p:even').css('color','red'); //偶数
// $('.p1 p:lt(2)').css('color','red'); //小于
// $('.p1 p:gt(2)').css('color','red'); //大于 // 属性选择器
// $('[alex]').css('color','red'); //属性名查找
// $('[alex="123"]').css('color','red');//key=value查找
// $("[alex='123'][peiqi='678']").css('color','red');//注意引号区分,多属性之间用[]区分,属性之间不能用空格 //表单选择器
// $(':checkbox');//获取到复选框的输入标签jquery对象
// $('[type="checkbox"]'); // 筛选器进阶
// $(".p1 p").eq(1);//获取到的结果依旧是一个jquery对象
// $(".p1 p").eq(1).text();
// $('.p1 p').ep(2).html(); // 以下较为麻烦,需要做字符串的拼接
// var index=3;
// $(".c3:"+"eq("+index+")").css("color","red");
// $(".c3").eq(index).css("color","red");
// console.log($('.c8').hasclass('t1'));//是否存在class='t1',如果存在返回True; // 导航查找
// 子--子孙
// $('.c9').children('p').css('color','red');//找所有的儿子里面的p标签
// $('.c9').find('p').css('color','red');//找子孙后代所有的p标签
// $(".p1").children(":first").css("color","red");
//$(".p1").children().first().css("color","red");
//兄弟(next)
// $('#i2').next().css('color','red');//找i2下一个兄弟标签
// $('#i2').nextAll().css('color','red');//找i2下面所有的兄弟标签
// $('#i2').nextUntil('.c8').css('color','red');//选择直到.c8位置的兄弟标签,去头去尾取中间
//兄弟(prev)
// $('#i2').prev().css('color','red');//找i2先前的一个兄弟标签
// $('#i2').prevAll().css('color','red');//找i2先前所有的兄弟标签
// $('#i2').prevUntil('#i3').css('color','red');//选择直到#i3位置的兄弟标签,去头去尾 //父亲(parent)
// $('#i2').parent().css('color','red');//找i2的父亲标签
//$('#i2').parents('可以给定条件').css('color','red');//找i2的祖先标签 </script>
</body>
</html>

属性操作与选择器演示代码

五、事件绑定

绑定事件的语法:
$('选择器 ').事件(function()
{
执行的代码;
})
注意:内部的this是dom对象;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加一个元素</title>
</head>
<body>
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
</ul>
<button >点击添加</button>
<script src='jquery 3.3.1.js'></script>
<script type="text/javascript"> //给button添加点击事件
$('button').click(function (){
$('ul').append('<li>444</li>');
})
//给li标签添加点击事件
$('li').click(function(){
//内部的this是一个dom对象
alert($(this).text());
})
</script> </body> </html>

low版事件绑定示例

  注意:我们这个绑定的示例,新增添的<li>444</li>标签没有点击事件,这不是我们想要的,所以我们需要学习高级一点的绑定事件,事件绑定+事件委派;

六、事件绑定与委派(推荐使用此方法绑定事件)

绑定事件+委派的语法:
父项$.on('事件','需要委派的标签',function()
{
执行的代码;
})
注意:内部的this是dom对象;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加一个元素</title>
</head>
<body>
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
</ul>
<button >点击添加</button>
<script src='jquery 3.3.1.js'></script>
<script type="text/javascript"> //给button添加点击事件
$('button').click(function (){
$('ul').append('<li>444</li>');
})
//通过父项绑定事件并委派事件
$('ul').on('click','li',function(){
//内部的this是一个dom对象
alert($(this).text());
}) </script> </body> </html>

升级版事件绑定示例

七、属性操作(补充)

        1 文本操作
$("").html()
$("").text()
$("").html("参数")
$("").text("参数")
2 属性操作
$().attr("")
$().attr("","")
$("p").attr("alex")
$("p").attr("alex","dsb")
$("p").removeAttr("class") 3 class 操作
$("p").addClass("c1")
$("p").removeClass("c1")

八、实例补充

$(function(){
jquery代码 }) 代码先把文档所有的内容加载完;
再执行 $( ) 括号里面的代码
jquery的链式结构:表示的是当jquery调用方法时,代码的返回值还是当前的jquery对象;

 $(this).next().removeClass("hide");
该代码返回值是$(this).next();
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>左侧栏</title>
<style type="text/css">
body{
margin:0;
padding: 0;
}
ul{
margin: 0;
}
aside{
width: 20%;
height: 800px;
background-color: #BFA372FF;
}
button{
display: inline-block;
height: 50px;
width:100%;
line-height: 50px;
background-color: #29C2D0FF;
color:white;
font-size: 20px;
text-align: center;
margin-top:2px; }
.hide{
display:none;
}
</style>
<script src='jquery 3.3.1.js'></script>
<script type="text/javascript">
$( function(){
$('button').on('click',function(){
$(this).next().removeClass('hide');
$(this).parent().siblings().children('aside .nav').addClass('hide');
}) }) </script>
</head>
<body>
<aside>
<div>
<button class='title'>第一章</button>
<ul class='nav hide'>
<li>111</li>
<li>111</li>
<li>111</li>
</ul>
</div>
<div>
<button class='title'>第二章</button>
<ul class='nav hide'>
<li>222</li>
<li>222</li>
<li>222</li>
</ul>
</div>
<div>
<button class='title'>第三章</button>
<ul class='nav hide'>
<li>333</li>
<li>333</li>
<li>333</li>
</ul>
</div>
</aside> </body>
</html>

左侧菜单栏jquery实例

 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>导航图</title>
<style type="text/css">
div{
margin-top: 15px;
width:600px;
height: 200px;
line-height: 200px;
background-color: #32A6CCFF;
text-align:center; }
ul{
margin: 0;
padding: 0;
font-size: 0; }
ul li{
display: inline-block;
line-height: 200px;
font-size: 38px;
text-align: center;
width: 200px;
}
.c1{
background-color: #A662D2FF;
}
.hide{
display:none;
}
</style>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script type="text/javascript"> $(function(){
$('li').on('click',function(){
$(this).css('color','white');
$(this).css('background-color','#E95469FF');
$(this).siblings().css('background-color',' #32A6CCFF');
$(this).siblings().css('color','black'); // alert($(this).val());
let value=$(this).val()
let dis_arr=$(this).parents().parent().siblings();
dis_arr.addClass('hide');
dis_arr.eq(value).removeClass('hide'); })
})
</script>
</head>
<body>
<div>
<ul>
<li class='nav' value="1">第一章</li>
<li class='nav' value="2">第二章</li>
<li class='nav' value='3'>第三章</li>
</ul>
</div>
<div class='hide c1'><h1>123</h1></div>
<div class='hide c1'><h1>456</h1></div>
<div class='hide c1'><h1>789</h1></div> </body>
</html>

tab表单切换jQuery实现

 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> </head>
<body> <button>全选</button>
<button>取消</button>
<button>反选</button>
<hr>
<table border="1">
<tr>
<td><input type="checkbox"></td>
<td>111</td>
<td>111</td>
<td>111</td>
<td>111</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>222</td>
<td>222</td>
<td>222</td>
<td>222</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>333</td>
<td>333</td>
<td>333</td>
<td>333</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>444</td>
<td>444</td>
<td>444</td>
<td>444</td>
</tr>
</table> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
$('button').on('click',function(){
switch($(this).text()){
case '全选':
$('[type="checkbox"]').prop('checked','checked');
break;
case '取消':
$('[type="checkbox"]').prop('checked',false);
break;
case '反选':
$("table :checkbox").each(function(){
$(this).prop("checked",!$(this).prop("checked"));
})
break;
default:console.log(123);
break; }
}) // $("button").click(function(){ // if($(this).text()=="全选"){ // $(this)代指当前点击标签 // $("table :checkbox").prop("checked",true)
// }
// else if($(this).text()=="取消"){
// $("table :checkbox").prop("checked",false)
// }
// else {
// $("table :checkbox").each(function(){ // $(this).prop("checked",!$(this).prop("checked")); // });
// } // }); </script>
</body>
</html>

table反选操作prop的使用

jquery 选择器、筛选器、事件绑定与事件委派的更多相关文章

  1. jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax

    jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...

  2. jquery选择器筛选器

    jQuery对象 Query 对象就是通过jQuery包装DOM对象后产生的对象.jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里 ...

  3. JQuery 选择器 筛选器

    什么是jQuery对象 参考:http://jquery.cuishifeng.cn/css.html jQuery 对象就是通过jQuery包装DOM对象后产生的对象.jQuery 对象是 jQue ...

  4. jQuery---jq基础了解(语法,特性),JQ和JS的区别对比,JQ和JS相互转换,Jquery的选择器(基础选择器,层级选择器,属性选择器),Jquery的筛选器(基本筛选器,表单筛选器),Jquery筛选方法

    jQuery---jq基础了解(语法,特性),JQ和JS的区别对比,JQ和JS相互转换,Jquery的选择器(基础选择器,层级选择器,属性选择器),Jquery的筛选器(基本筛选器,表单筛选器),Jq ...

  5. JS 事件绑定、事件监听、事件委托详细介绍

    原:http://www.jb51.net/article/93752.htm 在JavaScript的学习中,我们经常会遇到JavaScript的事件机制,例如,事件绑定.事件监听.事件委托(事件代 ...

  6. JS 中的事件绑定、事件监听、事件委托是什么?

    在JavaScript的学习中,我们经常会遇到JavaScript的事件机制,例如,事件绑定.事件监听.事件委托(事件代理)等.这些名词是什么意思呢,有什么作用呢? 事件绑定 要想让 JavaScri ...

  7. JS中的事件绑定,事件捕获,事件冒泡以及事件委托,兼容IE

    转载请注明出处:http://www.cnblogs.com/zhangmingze/p/4864367.html   ● 事件分为三个阶段:   事件捕获 -->  事件目标 -->   ...

  8. 理解Javascript中的事件绑定与事件委托

    最近在深入实践js中,遇到了一些问题,比如我需要为动态创建的DOM元素绑定事件,那么普通的事件绑定就不行了,于是通过上网查资料了解到事件委托,因此想总结一下js中的事件绑定与事件委托. 事件绑定   ...

  9. 事件绑定,事件捕获,事件冒泡以及事件委托,兼容IE

    ● 事件分为三个阶段:   事件捕获 -->  事件目标 -->  事件冒泡 ● 事件捕获:事件发生时(onclick,onmouseover……)首先发生在document上,然后依次传 ...

随机推荐

  1. 今天俺要说一说工厂方法模式(Factory)

    前言;工厂方法模式又叫做工厂模式,它是23个设计模式中的一个,它解决的还是在软件设计中创建对象的问题,它可以更好的解决用户需求的变化. 问题;在简单工厂模式中,我们将实例化的对象全部放于Factory ...

  2. Spring Boot Cache配置 序列化成JSON字符串

    当我们使用@Cacheable注解的时候会将返回的对象缓存起来,我们会发现默认缓存的值是二进制的,不方便查看,为此我们自定义序列化配置,改成JSON格式的 配置如下: pom.xml <?xml ...

  3. C++版 - 剑指offer面试题14: 调整数组顺序使奇数位于偶数前面

    题目: 调整数组顺序使奇数位于偶数前面 热度指数:11843 时间限制:1秒 空间限制:32768K 本题知识点: 数组 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇 ...

  4. API网关模式

    什么是网关 网关一词来源于计算机网络中的定义,网关(Gateway)又称网间连接器.协议转换器.网关的准确定义是: 两个计算机程序或系统之间的连接,网关作为两个程序之间的门户,允许它们通过不同计算机之 ...

  5. MariaDB Galera Cluster 部署 + keepalived实现高可用

    MariaDB Galera Cluster 部署 MariaDB作为Mysql的一个分支,在开源项目中已经广泛使用,例如大热的openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力 ...

  6. MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复 实例

    innobackupex 的使用方法1.完全备份 参数一是完全备份地址 完全备份到/data/mysql/back_up/all_testdb_20140612 目录下innobackupex --u ...

  7. 【转】java缩放图片、java裁剪图片代码工具类

    一首先看下效果 二工具类 三测试类 在系统的上传图片功能中,我们无法控制用户上传图片的大小,用户可能会上传大到几十M小到1k的的图片,一方面图片太大占据了太多的空间,另一方面,我们没办法在页面上显示统 ...

  8. Java开发笔记(六)特殊数字的表达

    之前的文章提到,Java语言不但支持大众熟知的十进制数,也支持计算机特有的二进制数.八进制数和十六进制数.可是在给数值变量赋值的时候,等号右边的数字明显属于十进制,那究竟要如何书写其它进制的数字呢?为 ...

  9. c++中求数组长度

    #include <iostream> using namespace std; template <class T> int getArrSize(T& arr){ ...

  10. HTML和CSS在IE7中常见的兼容性问题

    IE7及以下版本都会有这些问题 1.IE7块转内联块问题 问题描述:好像块转内联块失败,依然不在一行排列 解决办法:给元素添加如下css    *display:inline;*zoom:1; *di ...