美文网首页
jQuery常用用法大全

jQuery常用用法大全

作者: 安掌门dear | 来源:发表于2021-01-04 16:51 被阅读0次

不管前方的路有多苦,只要走的方向正确,不管多么崎岖不平,都比站在原地更接近幸福!
-- 本文章来自拉勾教育大前端课程

jQuery

  • jQuery 是一个高效、精简并且功能丰富的javaScript工具库
  • jQuery 对象不能使用原生JS对象的方法

$()方法

  • 在jQuery中,只有一个全局变量$,这是jQuery的一大特点,避免全局变量污染
    //利用jquery获取样式
    console.log($("#box").css("width"));
    //更改样式属性
    $(".box").css("width",200);
    // 事件简化
    $(".box").click(function(){
      $(this).css("background-color","skyblue")
    })
    $(".box").animate({"width":500},1000);
    

jQ对象和原生对象的转换

  • jQuery转原生:直接利用数组下标方式,得到jquery封装的原生对象
  • 原生转jQuery:将原生对象用$()方法包裹即可
    // jq对象转原生js对象
    var $ps = $("p")
    $ps[0].innerHTML = "HELLO"
    //原生js对象转jq对象
    var op = document.getElementsByTagName("p")[0]
    $(op).css("background-color","skeblue")
    

筛选选择器

  • 过滤选择器,jq中新增的自己选择器
    $("p:first").css ("color","pink")
    $("p:last").css("background-color","red")
    $("p:eq(5)").css("background-color","yellow")
    

jQuery常用方法

html 方法

  • 相当于原生js中的innerHTML属性,用来获取或设置标签内部内容,若设置标签,标签会被渲染
    //传递参数,更改文本
    $(".box").html("新的标签")
    //不传递参数,获取文本
    console.log($(".box").html())
    //渲染标签
    $(".box").html("新的标签<p>p标签</p>")     
    

text()方法

  • 相当于原生js的innerText属性,获取标签内部文字

val()方法

  • 相当于原生js中的value属性,用来获取设置表单元素内容

attr()方法

  • 全称attribute属性的意思,用来获取或者设置标签的属性值
    <img src="images/cat.jpg" alt="cat" class="pic">
    //获取属性值
    console.log($(".pic").attr("src"))
    //更改属性值
    $(".pic").attr("alt","dog")
    

removeAttr()

  • 删除属性值的方法

prop()方法

  • 针对特殊的表单元素设置的,属性名和属性值相同
  • prop方法操作的是布尔值
    $("input[type='checkbox']").prop("checked");
    

css()方法

  • 调用某个css属性值,得到某个元素计算后样式,值为字符串格式
    $(".box").css("width","+=100")
    //设置多条属性
    $(".box").css({
      "width": 200,
      "heigth": 300
    })
    

addClass()添加类名

$(".btn").click(function(){
  $(".box").addClass("demo")
})

removeClass()删除类名

$(".btn").click(function(){
  $(".box").remiveClass("demo")
})

toggleClass()类名切换

//如果有该类名则删除该类名,如果没有该类名则切换该类名
$(".btn").click(function(){
  $(".box").remiveClass("demo")
})

hasClass()检测类名是否存在

console.log($(".box").hasClass(".demo"))

事件类型

  • mouseenter()方法:鼠标进入事件
  • mouseleave()方法:鼠标离开事件
    $("#box").mouseenter(function(){
      $("#box").html("进入")
    })
    $("#box").mouseleave(function(){
      $("#box").html("出来")
    })
    
  • 有事件冒泡mouseover()和mouseout()
  • hover() 方法对mouseenter和mouseleave进行合并

节点关系

  • $(this) 将this关键字传递给$()方法得到的就是指向自己的jQuery对象
  • parent()父级 查找父级
  • children() 子级 得到自己所有子级元素组成的对象
    //点击事件
    $("p").click(function(){
      //this指向的就是当前点击的元素
      $(this).css("background-color","red")
      //当前节点的父级元素
      $(this).parent().css("background-color","yellow")
    })
    //当前元素节点的子节点
    $(".box").click(function(){
      $(this).children().css("background-color","green")
    })
    
  • siblings() 兄弟 得到除了自己以外的所有同级兄弟
    //当前元素的兄弟集
    $("p").click(function(){
      $(this).siblings().css("background-color","green")
    })
    
  • 链式调用
    $("p").click(function(){
      $(this).css("background-color","red")
      .siblings().css("background-color","gold")
      .parent().css("background-color","green")
      .siblings().css("background-color","blue")
    })
    
  • find()后代查找的方法
  • next() 下一个兄弟元素
  • prev() 上一个兄弟元素
  • nextAll() 后面所有兄弟
  • prevAll() 前面所有兄弟
  • parents() 查找包含body在内的祖先级
    $("p").click(function(){
      $(this).css("background-color","red")
      // 选中同级前面所有元素
      .prevAll().css("background-color","yellow")
      //选中同级后面所有元素
      $(this).nextAll().css("background-color","green")
      //选中所有父级元素包括body
      $(this).parents().css("background-color","skyblue")
    })
    

jQuery 排序和动画

eq()方法

  • eq()方法在jQuery对象中通过下标获取某个对象,下标是jQuery对象中大的排序下标

index()方法

  • index()得到的是它自己在HTML结构中的兄弟中的下标位置

each()遍历方法

  • 参数是一个函数,对jQuery对象中的元素每一个执行函数内部操作,基本原理就是for循环
  • each的函数内部也有一个this,指向的是进来遍历的每一次的元素
    $(".box").each(function(){
      $(this).children().eq(1).css("background-color","red")
    })
    //通过each方法进行遍历的操作
    $("p").each(function(i){
      $(this).click(function(){
        console.log(i);
        console.log($(this).index())
      })
    })
    

制作表格隔列变色

$("tr").each(function(){
  $(this).children(":odd").css("background-color","skeyblue ")
})

入口函数

  • 原生js的入口函数:window.onload
  • 在一个页面上可以书写多个jQuery函数,按先后顺序加载
  • jQuery中的入口函数:$(document).ready(function(){
    //获取元素
    })

jQuery切换效果的方法

显示和隐藏的方法

  • hide() 元素隐藏,隐藏的前提必须是元素display:block;
  • show() 元素显示,显示的前提必须是元素display:none;
  • toggle() 在元素隐藏和显示之间进行切换
  • 可以传递参数
    • 单词格式:slow,normal,fast
    • 数字格式的时间:单位是毫秒,在规定时间内会出现显示和隐藏的动画
    //点击隐藏
    $btn1.click(function(){
      $pic.hide();
    })
    //点击显示
    $btn2.click(function(){
      $pic.show();
    })
    //点击切换
    $btn3.click(function(){
      $pic.toggle();
    })
    
  • slideDown() 滑动显示
  • slideUp() 滑动隐藏
  • slideToggle() 滑动切换
    //点击隐藏
    $btn1.click(function(){
      $pic.slideUp();
    })
    //点击显示
    $btn2.click(function(){
      $pic.slideDown();
    })
    //点击切换
    $btn3.click(function(){
      $pic.slideToggle();
    })
    
  • fadeln() 淡入,透明度逐渐增大最终显示
  • fadeOut() 淡出,透明度逐渐降低最终隐藏
  • fadeToggle() 切换效果
  • fadeTo() 淡入淡出到某个指定的透明度
    //点击淡入
    $btn1.click(function(){
      $pic.fadeln();
    })
    //点击淡出
    $btn2.click(function(){
      $pic.fadeOut();
    })
    //点击切换
    $btn3.click(function(){
      $pic.fadeToggle();
    })
    //淡入到指定透明度
    $btn4.click(function(){
      $pic.fadeTo(500,0,5)
    })
    

animate()

  • 作用:执行css属性集的自定义动画
  • 语法:$(selector).animate(style,speed,easing,callback)
  • 参数1: css的属性名和运动结束位置的属性值的集合
  • 参数2:规定动画的速度,默认是normal,其他值:slow,normal.fast
  • 参数3:规定在不同的动画中设置动画速度的easing函数,包括swing和linear
  • 参数4: animate函数执行完后执行的函数
    //只能改变所有有数值属性的内容
    $("p").click(function(){
        $(this).animate({"left": 500},2000,"swing",function(){
          $(this).css("background","red")
        })
      })
    
  • 同一个元素身上,如果定义了多个动画,动画会排队等待执行
  • 如果是不同的元素对象都有动画,不会出现排队机制
  • 如果是其他非运动的代码,也不会等待运动完成
  • 动画显示隐藏如果也设置给同一个元素也需要动画排队

动画延迟delay

  • 将delay()设置在某个运动方法之前,表示后面的运动要在规定的时间之后执行,有延迟效果
    $(".box").delay(2000).animate({"left": 500},during)
    

停止动画stop

  • stop() 设置元素对象身上的排队的动画以何种方式进行停止
  • 参数1 设置是否清空后面的动画排队,如果是true表示清空,如果是false表示不清空只停止当前的一个动画
  • 参数2 s设置当前动画是否立即完成,如果是true表示立即完成,对象会立刻走到结束位置,如果false表示不完成当前动画,立即停止在当前位置
  • 默认参数为false,false,更多时候设置为stop(true,false)

jQuery 节点操作

追加元素

  • 向父元素后面追加
    • 父元素jQuery.append(新创建的jQuery对象)
    • 新创建的jQuey.appendTo("父元素选择器或者父元素对象")
  • 向父元素前面追加
    • 父元素jQuery.prepend(新创建的jQuery对象)
    • 新创建的jQuey.prependTo("父元素选择器或者父元素对象")
    $ul.append($lis);
    $li.appendTo($ul);
    $li.appendTO("ul");
    
  • 向元素后面追加新的兄弟
    • jQuery对象.after(新创建的jQuery)
    • 新创建的jQuery.insertAfter("选择器或jQuery对象)
  • 向元素前面追加新的兄弟
    • jQuery对象.before(新创建的jQuery对象)
    • 新创建的jQuery.insertBefore("选择器或jQuery对象")

删除和清空元素

  • jQuery对象.remove();
  • 清空方法:
    • jQuery对象.empty() 清空内部所有元素及相关事件
    • jQuery对象.html('') 仅清空内部元素不清理内存中元素事件

克隆元素

  • jQuery对象.clone(布尔值) 返回克隆好的元素
  • 参数:默认是false 表示仅克隆内容。true,克隆内容和事件

操作元素尺寸的方法

  • width()和heigth() 操作的大小是内容部分
    • 设置:jQuery对象.width(数字)
    • 获取:jQUery对象.width()
  • innerWidth()和innerHeight()操作的大小是内容部分 + padding
    • 设置:jQuery对象.innerwidth(数字)设置的值只设置给内容部分
    • 获取:jQUery对象.innerwidth()
  • outerWidth() 和 outerHeight() 操作的大小是内容部分+padding+border
    • 设置的值只设置给内容部分

操作元素位置的方法

  • 获取元素距离文档的位置
    • jQuery对象.offset() 返回一个对象,对象中包含了元素的位置
    • offset() 方法获取的元素位置,永远参照文档,和定位没有关系
  • 获取距离上级定位参考元素的位置
    • jQuery对象.position() 获取元素位置参照的最近定位,和定位有关

操作卷去的页面间距

  • 获取: jQuery对象.scrollTop()
  • 设置: jQuery对象。scrollTop(数字)
    //给文档设置滚动事件
    $(document).scroll(function(){
      //获取滚动条卷走的距离
      console.log($(this).scrollTop())
    })
    //设置点击返回顶端
    $(".box").click(function(){
      $(document).scrollTop(0)
    })
    

简单方式注册事件

  • jQuery对象.on("事件名",事件处理程序)
    //使用on方法注册简单事件
    $("input").on("click",function(){
      //事件处理程序
    })
    
  • jQuery事件委托的实现
    • jQuer对象.on('事件名','选择器',事件处理程序)
    $("ul").on("click","li",function(){
      //在事件委托过程中,事件函数内部this不是指向事件源而是指向触发事件的委托子元素
    })
    

off移除事件

  • 解绑简单事件 jQuery对象.off("click",事件处理程序名称)
  • 解绑事件委托注册事件 jQuery对象.off("click","选择器,事件处理函数")

trigger触发事件

  • jQuery对象.trigger("事件名")
    var timer = setInterval(function(){
      $(".right").trigger("click");
    },1000)
    

相关文章

网友评论

      本文标题:jQuery常用用法大全

      本文链接:https://www.haomeiwen.com/subject/gfmvoktx.html