方君の小窝 方君の小窝
首页
  • 原生js总结
  • 样式相关
  • vue
  • 其他必备知识
  • php
其他
GitHub

方君

迷糊小前端
首页
  • 原生js总结
  • 样式相关
  • vue
  • 其他必备知识
  • php
其他
GitHub
  • 原生js总结

    • js基础
    • ajax
    • 跨域,js同步异步
    • promise(待扩展,微队列及all,race案例)
    • 原型、原型链、继承
    • 闭包
    • 设计模式-单例、观察者
    • jquery
      • 1、jquery选择器
        • 1. 基本选择器
        • 2. 层次选择器
        • 3. 过滤选择器
      • 2、DOM元素操作
        • 1. 设置、获取元素内容 //他们是一系列的函数
        • 2. 设置、获取元素属性
        • 3. 创建、添加、删除元素
      • 3、操作CSS
      • 4、html事件
        • 1. jquery事件的绑定
        • 2. jquery事件的移除
        • 3. jquery提供的可直接使用的事件
      • 5、js特效
        • 1. 显示隐藏
        • 2. 自定义动画
      • 6、jquery遍历
        • 1. 找祖先
        • 2. 找后代
        • 3. 找同胞
        • 4. 过滤
      • 7、jquery ajax
      • 8、插件!
      • 9、jquery插件制作
        • 1. 树形菜单
        • 2. 轮播
    • json格式
    • class
    • 模块化
    • cookie
  • 样式相关

  • vue

  • 其他必备知识

  • 前端
  • 原生js总结
方君
2020-08-24

jquery

# jquery

jquery是js的一个类库(javascript函数库),将js中的常见功能封装,提高开发效率

jquery2.0以上不支持ie6,7,8

  • html元素选取
  • html元素操作
  • css操作
  • html事件
  • js特效
  • 遍历(目的也是元素选取)
  • ajax

bootCDN

$("#div1")          //jquery    $("字符串")    jquery对象,可以使用jquery的内置方法
$("#div1").html();  //如果 jquery提供的函数参数为空  相当于在get   获取
$("#div1").html("");//如果 jquery提供的函数参数不为空  相当于在set   设置
$("#div1").text();


$("#div1").attr("class")//获取属性的attr方法 需要有两个参数,1,是你需要获得的值  2,你想改变的值

$("#div1").attr("class","新值");
$("#div1").removeAttr("需要移除的属性名")
1
2
3
4
5
6
7
8
9
10

# 1、jquery选择器

  • 选择器的结构$()
  • 基于css3和其他已定义选择器查找html元素
  <style>
  div{
    width: 100px;;
    border: 1px solid #aaa;
    margin: 10px;
  }
  </style>  


<div id="div1" class="div">1</div>
  <div id="div2" class="div">
    <div id="div3" class="div">2
          <div>3</div>
          <div>4</div>
      </div>
  </div>
  <div></div>
  <div></div>


  <ul>
    <li id="li">兄弟们好</li>
    <li style="display: none">兄弟们好</li>
    <li>兄弟们好</li>
    <li>兄弟们好</li>
    <li>兄弟们好</li>
  </ul>
  <input type="radio" checked>
  <select name="" id="" >
    <option value="1" >123132</option>
    <option value="1" selected="selected">7677</option>
  </select>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# 1. 基本选择器

//原生
document.getElementById("div1");
//jquery
$("#div1");       //id选择器
$("div");         //元素选择器
$(".div");        //类选择器
$("#div1,#div2"); //组合选择器
1
2
3
4
5
6
7

# 2. 层次选择器

$("#div2 div");   //后代选择器    *
$("#div2>div");   //子元素选择器   *
$("#div3+div");   //紧邻下一个元素选择器
$("#div3~div");   //紧邻下n个元素选择器
1
2
3
4

# 3. 过滤选择器

$("li:first")      //第一个li
$("li:last")       //最后一个li
$("li:even")       //挑选下标为偶数的li                 *
$("li:odd")        //挑选下标为奇数的li                 *
$("li:eq(4)")      //下标等于 4 的li(第五个 li 元素)     *
$("li:gt(2)")      //下标大于 2 的li   是无法取到等于的
$("li:lt(2)")      //下标小于 2 的li   是无法取到等于的
$("li:not(#li)")   //挑选除 id="li" 以外的所有li
1
2
3
4
5
6
7
8
  1. 2内容过滤选择器
$("div:contains('1')")         // 包含1文本的元素
$("div:empty")                 //不包含子元素或者文本的空元素
$("div:has(.div)")             //子元素中含有has()里面属性的元素
1
2
3
  1. 3可见性过滤选择器
$("li:hidden")       //匹配所有不可见元素,或type为hidden的元素
$("li:visible")      //匹配所有可见元素
1
2
  1. 4属性过滤选择器
//不适用于class  因为class有自己的class的选择
//适用于有且只有一个值的情况
//<input type="text"/>
$("div[id]")              //所有含有 id 属性的 div 元素         *
$("div[id='div1']")       // id属性值为123的div 元素           *
$("div[id][class='div']") //多属性选过滤,同时满足两个属性的条件的元素
1
2
3
4
5
6
  1. 5状态过渡选择器
$("input:checked")    // 匹配选中的 input
$("option:selected")  // 匹配选中的 option
1
2

# 2、DOM元素操作

# 1. 设置、获取元素内容 //他们是一系列的函数

html()  //设置或返回所选元素的内容(包含文本)
text()  //设置或返回所选元素的文本内容
val()   //设置或返回表单字段的值


get()   //获取选择器中的dom元素     get(0)   数字是被选中元素组成的数组中的元素位置
index() //返回指定元素相对其他指定元素位置       ***
size()  //返回被Jquery选择器匹配的dom元素数量
1
2
3
4
5
6
7
8

# 2. 设置、获取元素属性

attr()
$("#div1").attr("class")        //获取属性
$("#div1").attr("class","div2") //设置属性
$("#div1").attr({               //设置一组属性
    "class":"div3",
    "style":"background-color:red"
})

$('#div1').removeAttr('style');   //溢出属性
1
2
3
4
5
6
7
8
9

# 3. 创建、添加、删除元素

//创建元素       只需要用$()
var button=$("<button>点我呀</button>");


//插入元素
append()      //在被选元素的结尾插入内容(内部新增)*
prepend()     //在被选元素的开头插入内容(内部新增)
after()       //在被选元素之后插入内容(兄弟)
before()      //在被选元素之前插入内容(兄弟)


//删除元素
remove()                  //删除元素及其子元素
$("div").remove(".div")   //删除所有带有class=div的div
empty()                   //删除子元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 3、操作CSS

//css类操作     他可以不影响之前已存在的class类,只关注于新增的新类和要删除的类
addClass( 'class1 class2 class3' )    //添加一个或多个类            *
removeClass( 'class1 class2 class3' ) //删除一个或多个类            *
toggleClass()           //对被选元素进行添加/删除类的切换操作


//css方法操作
css("display")          //返回样式
css("background-color","yellow");  //设置样式
css({                              //设置多个样式
    "background-color":"red","font-size":"30px"
})

width();        //设置获取宽度
height();       //设置获取高度

offset()        //获取某个元素相对于浏览器窗口(可视区域的距离)
$(document).scrollTop()     //获取垂直滚动条的值;
$(document).scrollTop(value)//设置垂直滚动条的值;
$(document).scrollLeft()    //获取水平滚动条的值;
$(document).scrollLeft(value)//设置水平滚动条的值;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 4、html事件

# 1. jquery事件的绑定

$(selector).bind(event,function)                //bind方法绑定
$(selector).on(event,[childSelector],function)  //on方法绑定      事件委托
$(selector).one(event,function)                 //one方法,   执行一次后销毁
1
2
3

# 2. jquery事件的移除

$(selector).unbind(event)           
$(selector).off(event)
1
2

# 3. jquery提供的可直接使用的事件

$(selector).click(function)
1

# 5、js特效

# 1. 显示隐藏

//1普通显示隐藏
show()       //显示
hide()       //隐藏
toggle()     //切换
//可以传参,数字代表多少毫秒,
//内置三种参数:
//'fast' :200毫秒   ''(默认值):400毫秒   'slow':600毫秒


//2滑动显示隐藏
slideUp()        //向上滑动(隐藏)
slideDown()      //向下滑动(显示)
slideToggle()    //滑动(自动)


//3淡入淡出
fadeOut()        //淡出(隐藏)
fadeIn()         //淡入(显示)
fadeToggle()     //显示隐藏()自动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 2. 自定义动画

<div style="background:red;height:100px;width:100px;position:absolute;">
1
$(selector).animate({params},speed,callback);//params形成动画的CSS属性,speed时长,动画结束后回调函数

$("button").click(function(){
  $("div").animate({left:'250px'});
});


$("button").click(function(){      //操作多个属性
  $("div").animate({
    left:'250px',
    opacity:'0.5',
    height:'150px',
    width:'150px'
  });
});

$("button").click(function(){      //使用相对值
  $("div").animate({
    left:'250px',
    height:'+=150px',
    width:'+=150px'
  });
});



$("button").click(function(){       //队列功能
  var div=$("div");
  div.animate({height:'300px',opacity:'0.4'},"slow");
  div.animate({width:'300px',opacity:'0.8'},"slow");
  div.animate({height:'100px',opacity:'0.4'},"slow");
  div.animate({width:'100px',opacity:'0.8'},"slow");
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

$(selector).stop(stopAll,goToEnd);//停止动画
//可选的 stopAll 参数规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。
//可选的 goToEnd 参数规定是否立即完成当前动画。默认是 false。
1
2
3
4

# 6、jquery遍历

dom_tree

目的:找到期望获取的元素

# 1. 找祖先

parent()		//无参数,找到直接父元素(一个)*
parents()       //可有参数,找到所有父元素(N个),加参数是返回父元素中的符合参数选择器的元素
parentsUntil()  //必有参数,返回介于两个元素之间的所有祖先元素
1
2
3

# 2. 找后代

children()      //可有参数,返回被选元素所有直接子元素(只有下一级的元素),加参数是返回子元素中符合参数选择器的元素
find()          //必有参数,返回被选元素的全部后代元素!!当参数为*时,返回全部后代
1
2

# 3. 找同胞

siblings()       //可有参数,返回所有同胞元素,带参数是返回参数选择器中的全部dom元素     *


next()           //无参数,返回下一个同胞元素
nextAll()        //无参数,返回后面的全部同胞元素
nextUntil()      //必有参数,返回参数选择器到指定dom元素中的全部后代同胞

prev()           //无参数,返回前一个同胞元素
prevAll()        //无参数,返回前面的全部同胞元素
prevUntil()      //必有参数,返回参数选择器到指定dom元素中的全部前面同胞


1
2
3
4
5
6
7
8
9
10
11
12

# 4. 过滤

eq()          //必有参数,返回被选中元素中带有指定索引号的元素,从0开始
              //$("div:eq(2)")   第三个DIV
			  //$("div").eq(2);
1
2
3

# 7、jquery ajax

$.ajax({
    url:"",                  //路径
    type:"post",             //请求方式
    data:{"键":"值"},         //传入的数据
    success:function(data){  //成功后的回调函数,参数是responseText          
    }
})



$.get("url",function(data,status){
    
})

$.post("url",data,function(data,status){
    
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 8、插件!

jquery插件是以jquery核心代码作为基础,编写出的实现一定特效的代码,极大地减少开发成本。

以引入js的方式使用,设置初值即可。

jquery插件的分类有很多,大致分为:

ui类,表单验证,输入,特效,ajax,滑动,图形展示,导航,综合工具,动画等

著名插件!

jquery validate

<script src="jquery.js"></script>
<script src="jquery.validate.js"></script>
<script src="messages_zh.js"></script>
1
2
3

# 9、jquery插件制作

# 1. 树形菜单

  • event.stopPropagation(); 停止冒泡
  • 模拟后台数据(json格式),同级菜单以数组保存,上下级菜单,是将下级菜单的数组放置到上级菜单的属性中(如children:[])
  • 模拟后台数据时,注意格式要对应(用递归的方式取值)

# 2. 轮播

  • 小技巧,切换显示时,可以关闭全部,打开当前
  • $(selector).index() 是返回选择器在当前DOM结构节点下所处位置

jquery插件:

$().on("",function(){
    return false //相当于既停止冒泡,又阻止默认行为
    event.preventDefault();
    event.stopPropagation();
})



$.extend()//创建jquery  工具插件  方法
          //创建好后,被放在$.prototype的constructor中
$.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});


$.min(2,3); //  2 
$.max(4,5); //  5



$.fn.extend()//创建jquery  对象插件  方法    $.fn是jQuery原型对象
             //创建好后,被放在$.prototype中
$.fn.extend({          
    alertWhileClick:function() {            
          $(this).click(function(){                 
                 alert($(this).val());      //弹出input窗里的内容     
           });           
     }       
});       
$("#input1").alertWhileClick();     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
编辑
#基础
设计模式-单例、观察者
json格式

← 设计模式-单例、观察者 json格式 →

最近更新
01
vue自定义指令&生命周期
08-24
02
ajax
08-24
03
promise
08-24
更多文章>
Theme by Vdoing | Copyright © 2019-2020
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式