JQuery概要使用

1.1jQuery介绍


1.1.1 jQuery的概念

  • jQuery 是一个快速、简洁的 JavaScript 库,其设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。
  • j 就是 JavaScript; Query 查询; 意思就是查询js,把js中的DOM操作做了封装, 我们可以快速的查询使用里面的功能。
  • jQuery 封装了 JavaScript 常用的功能代码,优化了 DOM 操作、事件处理、动画设 计和 Ajax 交互。
  • jQuery 出现的目的是加快前端人员的开发速度,我们可以非常方便的调用和使用 它,从而提高开发效率
  • jQuery的优点【链式编程、轻量级、支持插件扩展开发、跨浏览器兼容、隐式迭代。 】 对事件、样式、动画支持,大大简化了DOM操作

1.1.2 jQuery的入口函数

jQuery中常见的两种入口函数:

// 第一种: 简单易用。
 $(function () {        
 ...  // 此处是页面 DOM 加载完成的入口 }) ; 
// 第二种: 繁琐,但是也可以实现 
$(document).ready(function(){ 
  ...  //  此处是页面DOM加载完成的入口 });

​ 总结:

  1. 等着 DOM 结构渲染完毕即可执行内部代码,不必等到所有外部资源加载完成, jQuery 帮我们完成了封装。
  2. 相当于原生 js 中的 DOMContentLoaded。
  3. 不同于原生 js 中的 load 事件是等页面文档、外部的 js 文件、css文件、图片加载完 毕才执行内部代码。
  4. 更推荐使用第一种方式。

1.1.3 jQuery 对象和 DOM 对象

使用 jQuery 方法和原生JS获取的元素是不一样的,总结如下 :

  1. 用原生 JS 获取来的对象就是 DOM 对象
  2. jQuery 方法获取的元素就是 jQuery 对象。
  3. jQuery 对象本质是: 利用$对DOM 对象包装后产生的对象(伪数组形式存储)。

DOM 对象与 jQuery 对象之间是可以相互转换的。因为原生js 比 jQuery 更大,原 生的一些属性和方法 jQuery没有给我们封装. 要想使用这些属性和方法需要把jQuery对 象转换为DOM对象才能使用。

// 1.DOM对象转换成jQuery对象,方法只有一种 var box = document.getElementById('box');  // 获取DOM对象 var jQueryObject = $(box);  // 把DOM对象转换为 jQuery 对象
// 2 jQuery 对象转换为 DOM 对象有两种方法: //   2.1 jQuery对象[索引值] var domObject1 = $('div')[0]
// 3 Query对象.get(索引值) var domObject2 = $('div').get(0) 

1.3 jQuery选择器

原生 JS 获取元素方式很多,很杂,而且兼容性情况不一致,因此 jQuery 给我们做 了封装,使获取元素统一标准。

1.3.1. 基础选择器

  • $(“选择器”) // 里面选择器直接写 CSS 选择器即可,但是要加引号
  • ID 选择器 $(“#id”)获取指定的id元素
  • 全选选择器 $(‘*’) 匹配所有的元素
  • 类选择器 $(“.class”) 获取同一类的class的元素
  • 标签选择器 $(‘div’)获取同一标签所有元素
  • 并集 $(‘div.p.li’) 交集选择器 $(‘li.current’)
  • 子代选择器 $(“ul>li”) 后代选择器 $(“ul li”)

1.3.2.筛选选择器

  • :first【:last】 $(‘li:first’) 【 $(‘li:last’) 】获取第一个[最后一个]元素
  • :eq(index) $(“li:eq(2)”) 获取li元素中,选择索引号为2的元素,索引号index从0开始
  • :odd $(“li:odd”) 获取li元素中索引为奇数的元素
  • :even $("li:even ") 获取li元素中索引为偶数的元素
<body>
    <ul>       
      <li>多个里面筛选几个</li>      
      <li>多个里面筛选几个</li> 
      <li>多个里面筛选几个</li>   
      <li>多个里面筛选几个</li>    
      <li>多个里面筛选几个</li>     
      <li>多个里面筛选几个</li>  
     </ul>    
    <ol>        
    <li>多个里面筛选几个</li>         
    <li>多个里面筛选几个</li>         
    <li>多个里面筛选几个</li>         
    <li>多个里面筛选几个</li>         
    <li>多个里面筛选几个</li>         
    <li>多个里面筛选几个</li>     
    </ol>     <script>         
    $(function() {             
    $("ul li:first").css("color", "red");             
    $("ul li:eq(2)").css("color", "blue");             
    $("ol li:odd").css("color", "skyblue");             
    $("ol li:even").css("color", "pink");         
    })     </script> 
    </body>
  • 在这里插入图片描述
  • List item

1.4 jQuery样式

1.4.1 css样式控制

jQuery 可以使用 css 方法来修改简单元素样式; 也可以操作类,修改多个样式
注意:css() 多用于样式少时操作,多了则不太方便

  • 参数只写属性名,则是返回属性值 var strColor = $(this).css(‘color’);
  • 参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是 数字可以不用跟单位和引号 $(this).css(’‘color’’, ‘‘red’’);
  • 参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开, 属性可以 不用加引号 $(this).css({ “color”:“white”,“font‐size”:“20px”});
1.4.2 类名操作

作用等同于以前的 classList,可以操作类样式, 注意操作类里面的参数不要加点。

  • 添加类 $(“div”).addClass(“current”);
  • 删除类 $(“div”).removeClass(“current”);
  • 切换类 $(“div”).toggleClass(“current”);
  • 检测类$(“div”).hasClass(“current”);

1.5 jQuery动画

  • 缩放
    显示 jQuery对象.show(speed,easing,fn);
    隐藏jQuery对象.hide(speed,easing,fn);
    切换jQuery对象.toggle(speed,easing,fn);
  • 下拉和向上卷去

    显示 jQuery对象.slideDown(speed,easing,fn);
    隐藏jQuery对象.slideUp(speed,easing,fn);
    切换jQuery对象.slideToggle(speed,easing,fn);
  • 淡入淡出

    显示 jQuery对象.fadeIn(speed,easing,fn);
    隐藏jQuery对象.fadeOut(speed,easing,fn);
    切换jQuery对象.fadeToggle(speed,easing,fn);
  • 自定义动画

    animate(params,[speed],[easing],[fn])
    :params 需要传入一个对象
    animage({
    样式属性名:目标值,
    样式属性名:目标值
    },1000)
    停止动画jQuery对象.stop(clearQueue,jumpToEnd);开发中常用的stop方法,一般不传入实参。使用默认值。

1.6 jQuery属性文本元素操作

  • 1.61 jQuery操作标签的属性
    • jQuery对象.attr(name,value)可以操作自定义属性
    • jQuery对象.data(name,value)用于操作自定义属性,需要具有data-前缀
    • 移除标签的属性:removeAttr(name);
    • prop方法操作属性:针对:selected、checked、disabled,只能操作基本属性。
      • 获取:$(‘input’).prop(‘属性名’)
      • 设置:$(‘input’).prop(‘属性名’,值);
  • 1.62 jQuery操作文本属性值
    • 操作标签内部的文本:jQuery对象.text();
    • 操作标签内部的所有内容:jQuery对象.html();
    • 操作表单元素的内容:jQuery对象.val();
  • 1.63 jQuery元素操作
    • 一 、遍历元素
      • 1.1 $(“div”).each(function(index,domEle){ xxx ;})
        • each()方法遍历匹配每一个元素,主要用DOM处理
        • index是索引号 domEle 是每个DOM对象
      • 1.2 $.each(object,function(index,element){{xxx;})
      • $.each()方法可用于遍历任何对象;数组对象
       <body>     
       <div>1</div>     
       <div>2</div>     
       <div>3</div>     
       <script>         
       $(function() {             
       // 如果针对于同一类元素做不同操作,需要用到遍历元素(类似for,但是 比for强大)             
       var sum = 0;             
       var arr = ["red", "green", "blue"];             
       // 1. each() 方法遍历元素              
       $("div").each(function(i, domEle) {                 
       / / 回调函数第一个参数一定是索引号  可以自己指定索引号号名称                 
       // console.log(i);                 
       // 回调函数第二个参数一定是 dom 元素对象,也是自己命名                 // console.log(domEle);  
       // 使用jQuery方法需要转换  $(domEle)                 $(domEle).css("color", arr[i]);                 
       sum += parseInt($(domEle).text());             
       })             
       console.log(sum);             
       // 2. $.each() 方法遍历元素 主要用于遍历数据,处理数据             // $.each($("div"), function(i, ele) {            
        //     console.log(i);             
        //     console.log(ele);             
        // });             
        // $.each(arr, function(i, ele) {             
        //     console.log(i);             
        //     console.log(ele);             
        // })             
        $.each({                 
        name: "andy", age: 18   
        }, function(i, ele) {   
        console.log(i); // 输出的是 name age 属性名                 console.log(ele); // 输出的是 andy  18 属性值          
            })      
       })     
      </script>
      </body>
      
      • 二 创建、添加、删除元素
        1. 创建一个动态的< li> $("<li></li>")
        2. 内部添加追加/移动元素
          • 新创建jQuery对象.appendTo(‘父元素选择器’ 或 父元素jQuery对象);
          • 父元素jQuery对象.apeend(新创建的jQuery对象);$(selector).append(content) 向被选元素的(内部)HTML 追加内容
          • prepend()向被选元素的(内部)HTML “预置”(Prepend)内容
          • prependTo() 向每个匹配的元素内部前置内容。
          • $(selector).after(content) 在被选元素之后添加 HTML
          • $(selector).before(content) 在被选元素之前添加 HTML
          • appendTo() 向匹配的元素内部追加内容。
          • prependTo()向每个匹配的元素内部前置内容。
          • insertAfter()在某个元素之后插入元素
          • insertBefore() - 在某个元素之前插入元素
      1. 删除元素
        1. element.remove()// 删除匹配的元素(本身)
        2. element.empty() // 删除匹配的元素集合中所有的子节点
        3. element.html(" ")// 清空匹配的元素内容
      <body>   
        <ul>        
         <li>原先的li</li>     
         </ul>    
          <div class="test">我是原先的div</div>     
          <script>         
          $(function() {            
           // 1. 创建元素             
           var li = $("<li>我是后来创建的li</li>");                    
           // 2. 添加元素            
               //  2.1 内部添加               
               // $("ul").append(li);  内部添加并且放到内容的最后面      
                 $("ul").prepend(li); // 内部添加并且放到内容的最前面             
               //  2.2 外部添加            
          var div = $("<div>我是后妈生的</div>");             
                 // $(".test").after(div);             $(".test").before(div);                    
          // 3. 删除元素             
              // $("ul").remove(); 可以删除匹配的元素 自杀             
              // $("ul").empty(); // 可以删除匹配的元素里面的子节点 孩子       
             $("ul").html(""); // 可以删除匹配的元素里面的子节点 孩子       
               })    
             </script> 
       </body>
      

1.7 jQuery尺寸、位置操作

1.7.1. jQuery 尺寸操作

jQuery 尺寸操作包括元素宽高的获取和设置,且不一样的API对应不一样的盒子模 型。

语法

  • width()/height() ---->取得匹配元素宽高
  • innnerWidth()/innerHeight() 包括padding值 取元素宽高
  • outerWidth/outerHeight() 包括padding border 取宽高
  • outerWidth(true)/outerHeight(true) 包括padding border margin 取宽高
 
​ 注意:有了这套 API 我们将可以快速获取和子的宽高,至于其他属性想要获取和设 置,还要使用 css() 等方法配合。 1.4.2. jQuery 位置操作 
​ jQuery的位置操作主要有三个: offset()、position()、scrollTop()/scrollLeft() , 具体 介绍如下: 
语法
<body> 
   <div></div>     
   <script>         
   $(function() {             
   // 1. width() / height() 获取设置元素 width和height大小  
           console.log($("div").width());             
    // $("div").width(300);
   // 2. innerWidth() / innerHeight()  获取设置元素 width和height  + padding 大小  
           console.log($("div").innerWidth());
   // 3. outerWidth()  / outerHeight()  获取设置元素 width和height  + padding + border 大小             
           console.log($("div").outerWidth());
   // 4. outerWidth(true) / outerHeight(true) 获取设置 width和 height + padding + border + margin             
           console.log($("div").outerWidth(true));         })     
</script> 
</body>
1.7.2. jQuery 位置操作

jQuery的位置操作主要有三个: offset()、position()、scrollTop()/scrollLeft() , 具体 介绍如下:
语法:

  1. offset()设置或获取元素偏移量
    • offset()方法设置或返回被选中元素相对于文档的便宜左边,跟父级没有关系
    • 该方法的两个属性 left、top 用于获取获取距离文档左、上的距离
    • 例: 设置元素偏移 offset({top:10,left:30})
  2. position() 方法用于返回被选元素相对于带有定位的父级偏移坐标,没有父级以文档为主
    • 该方法的两个属性 left、top 用于获取获取距离父级(文档)左、上的距离
  3. scrollTop/scrollLeft()设置或获取元素被卷去的头部和左侧
    • scrollTop()方法设置或返回被选中元素被卷去的头部
    • 不跟参数是获取
 <body>     
 <div class="father">         
 <div class="son"></div>     
 </div>              
 <div class="back">返回顶部</div>     
 <div class="container"></div>         
 <script>         
 $(function() {             
 // 1. 获取设置距离文档的位置(偏移)offset             
 console.log($(".son").offset());             
 console.log($(".son").offset().top);             
 // $(".son").offset({             
 //     top: 200,             
 //     left: 200             
 // });                    
 // 2. 获取距离带有定位父级位置(偏移) position   如果没有带有定位 的父级,则以文档为准             
 // 这个方法只能获取不能设置偏移   
 console.log($(".son").position());             
 // $(".son").position({            
 //     top: 200,            
 //     left: 200             
 // });               
 // 3. 被卷去的头部               
 $(document).scrollTop(100);                    
 // 被卷去的头部 scrollTop()  / 被卷去的左侧 scrollLeft()             
 // 页面滚动事件             
 var boxTop = $(".container").offset().top;  
 $(window).scroll(function() {                 
 // console.log(11);                 
 console.log($(document).scrollTop());                 
 if ($(document).scrollTop() >= boxTop) {  
                    $(".back").fadeIn();                 } else {                     $(".back").fadeOut();
               }
           });           
   // 返回顶部             
 $(".back").click(function() {                 
 // $(document).scrollTop(0);                 
 $("body, html").stop().animate({                     scrollTop: 0                 });                 
 // $(document).stop().animate({                 
 //     scrollTop: 0                 
 // }); 不能是文档而是 html和body元素做动画             
 })         })    
  </script> 
  </body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别动我代码儿

感谢技术精进的你,加油不负韶华

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值