jQuery 与 Bootstrap框架

jQuery 与 Bootstrap框架

目录

  • 初始jQuery

    ​ 1.jQuery简介

    ​ 2.jQuery的优势

    ​ 3.jQuery的注意事项

  • jQuery基本使用

    ​ 1.jQuery的基本语法

    ​ 2.jQuery选择器

    ​ 3.jQuery查找标签与js的区别

  • jQuery筛选器

    ​ 1.基本筛选器

    ​ 2.属性选择器

    ​ 3.表单筛选器

    ​ 4.筛选器的方法

  • jQuery的操作标签

    ​ 1.样式操作

    ​ 2.位置操作

    ​ 3.文本操作

    ​ 4.属性操作

    ​ 5.文档处理

  • jQuery绑定事件

    ​ 1.jQuery绑定事件与js绑定事件的对比

    ​ 2.移除事件

    ​ 3.阻止后续事件

    ​ 4.事件冒泡

    ​ 5.事件委托

    ​ 6.动画效果

  • Bootstrap框架

初识jQuery

jQuery简介

jQuery类 可以兼容多浏览器的JavaScript库(用jQuery 写的代码可以使用多种浏览器实现)

极大的简化了JavaScript编程,其宗旨是 写的更少做的更多

jQuery优势

  1. 一种轻量级的JS框架,他的核心文件小,不会影响页面的加载速度
  2. 丰富DOM选择器,jQuery的选择器用起来很方便
  3. 链式表达式。jQuery的链式操作可以把多个操作写在一行代码里,更加简洁
  4. 支持事件、样式、动画支持,并简化了js操作css的代码,代码的可读性大于js
  5. 支持Ajax操作
  6. 可以跨浏览器兼容
  7. 插件扩展开发, jQuery有着丰富的第三方的插件

使用jQuery的注意事项

  1. 使用jQuery必须要先导入

    jQuery的本质就是一个js文件,只是提前写好了诸多js方法,可以根据文件路径直接使用

    (jQuery分为压缩版本和非压缩版本,压缩版本中的js代码的文件名都用一个字母表示)

  2. 在导入的时候,遵循网络CDN服务或者本地导入

    本地导入就是提前下好文件,后直接导入

    CDN服务(内容分发网络)只有在计算机联网的时候才可以直接导入

jQuery基本使用

jQuery的基本语法

$(选择器).动作
$(selector).action()   
正规写法:jQuery()

jQuery选择器

选择器 选择器语法
id选择器 $("#id")
标签选择器 $("tagName")
class选择器 $(".className")
选择器之间的配合使用 $("div.c1")
找到有c1 class类的div标签
组合选择器 $("#id, .className, tagName")
在jQuery()中选择器之间用逗号隔开
层级选择器 ("xy");//xy<br>("x > y");// x的所有儿子y(儿子)
("x+y")//xy<br>("x ~ y")// x之后所有的兄弟y
这里的x,y可以为任意选择器

jQuery选择器查找标签之后的结果与js的区别

结果集都是数组但是功能有区别

1.如果使用索引取值 那么都是标签对象
标签对象是无法调用jQuery提供的方法的
2.标签对象如果想转换成jQuery对象需要使用 $()
转换成jQuery对象的目的是为了使用jQuery提供的更多方法

jQuery筛选器

基本筛选器

语法 含义
:first 第一个
:last 最后一个
:eq(index) 索引等于index的那个元素
:even 匹配所有索引值为偶数的元素,从 0 开始计数
:odd 匹配所有索引值为奇数的元素,从 0 开始计数
:gt(index) 匹配所有大于给定索引值的元素
:lt(index) 匹配所有小于给定索引值的元素
:not(元素选择器) 移除所有满足not条件的标签
:has(元素选择器) 选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)

属性选择器

属性选择器 意义
[attribute=value] 属性等于
[attribute!=value] 属性不等于

举例

<input type="text">
<input type="password">
<input type="checkbox">
$("input[type='checkbox']");// 取到checkbox类型的input标签
$("input[type!='text']");// 取到类型不是text的input标签

表单筛选器

在表单中(input[type="text"])(' :text ')

表单筛选语法 含义
表单属性 <input type = '表单' class = " >
:text 匹配所有普通文本框
:password 匹配所有密文展示框
:file 匹配所有文件域
:radio 匹配所有单选框
:checkbox 匹配所有多选框
:submit 匹配所有提交按钮,匹配 type="submit" 的input或者button
:reset 匹配所有重置按钮
:button 匹配所有按钮
表单对象属性: <input type = '表单' class = ' ' 表单对象属性 value = ‘数据’ >
:enabled 匹配所有可用元素
:disabled 匹配所有不可用元素
:checked 匹配所有选中的被选中元素(复选框、单选框等,select中的option)
:selected 匹配select中的option

筛选器方法

方法 作用
$("#id").next() 查找下一个同级别元素
$("#id").nextAll() 查找下面所有同级别的元素
$("#id").nextUntil("# i2") 查找下面同级别指定元素
$("#id").prve() 查找上一个同级别的元素
$("#id").prveAll() 查找上面所有同级别的元素
$("#id").prveUntil(" # i2") 查找上面同级别的指定元素
$("#id").parent() 查找当前元素的父辈元素
$("#id").parents() 查找当前元素的所有父辈元素
$("#id").parentsUntil() 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止
$("#id").children(); 查找当前元素的所有子代元素
$("#id").siblings(); 查找当前元素的所有同级别元素

由于对象调用方法后还会返回一个对象,扔旧可以再次调用,故而实现了链式操作的效果

操作标签

样式操作

作用 jQuery操作 js操作
添加指定的CSS类名 addClass(); classList.add()
移除指定的CSS类名 removeClass(); classList.remove()
判断样式存不存在 hasClass(); classList.contains()
切换CSS类名,如果有就移除,如果没有就添加 toggleClass(); classList.toggle()
CSS类 .css('样式名','样式值') style.样式名 = '样式值'

位置操作

方法 作用
offset() 获取匹配元素在当前窗口的相对偏移或设置元素位置
position() 获取匹配元素相对父元素的偏移
scrollTop() 获取匹配元素相对滚动条顶部的偏移
scrollLeft() 获取匹配元素相对滚动条左侧的偏移
  • offset()与 position()的区别:

    .offset()允许检索一个元素相对于文档(document)的当前位置

    .position() 是相对于父级元素的位移

文本操作

作用 jQuery JS
取得所有匹配元素的内容 text() innerText()
取得第一个匹配元素的html内容 html() innerHTML()
取得第一个匹配元素的当前值 val() value = ' '
获取标签内的文件值 [0].files files

属性操作

方法 作用
attr(attrName) 返回第一个匹配元素的属性值
attr(attrName, attrValue) 为所有匹配元素设置一个属性值
attr({k1: v1, k2:v2}) 为所有匹配元素设置多个属性值
removeAttr() 从每一个匹配的元素中删除一个属性
prop() 获取属性
removeProp() 移除属性

在1.x及2.x版本的jQuery中使用attr对checkbox进行赋值操作时会出bug,在3.x版本的jQuery中则没有这个问题。为了兼容性,我们在处理checkbox和radio的时候尽量使用特定的prop(),不要使用attr("checked", "checked")

  • prop 与 attr的区别

    1. 二者虽然都是属性,但他们所指的属性并不相同,attr所指的属性是HTML标签属性,而prop所指的是DOM对象属性,可以认为attr是显式的,而prop是隐式的。

    2. prop不支持获取标签的自定义属性

    3. 对于标签上有的能看到的属性和自定义属性都用attr

    4. 对于返回布尔值的比如checkbox、radio和option的是否被选中都用prop。

文档处理

方法 作用
$(A).append(B) 把B追加到A
$(A).prepend(B) 把B前置到A
$(A).after(B) 把B放到A的后面
$(A).before(B) 把B放到A的前面
remove() 从DOM中删除所有匹配的元素。
empty() 删除匹配的元素集合中所有的子节点。
  • 事例方法

    1.替换:
    replaceWith()
    replaceAll()
    2.克隆
    clone()
    

    克隆事例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
    
        <style>
        #b1 {
          background-color: deeppink;
          padding: 5px;
          color: white;
          margin: 5px;
        }
        #b2 {
          background-color: dodgerblue;
          padding: 5px;
          color: white;
          margin: 5px;
        }
      </style>
    
    
    </head>
    <body>
        <button id="b1">小趴菜</button>
        <hr>
        <button id="b2">你才是小趴菜</button>
        <script>
      // clone方法不加参数true,克隆标签但不克隆标签带的事件
      $("#b1").on("click", function () {
        $(this).clone().insertAfter(this);
      });
      // clone方法加参数true,克隆标签并且克隆标签带的事件
      $("#b2").on("click", function () {
        $(this).clone(true).insertAfter(this);
      });
    </script>
    </body>
    </html>
    

jQuery事件

jQuery绑定事件

jQuery绑定事件与js绑定事件操作不同,执行的时候需要分清

  • js绑定事件操作

    标签对象.on事件名 = function(){事件代码}
    btnEle.onclick = function(){alert(123)}
    
  • jQuery绑定事件

    方式1
            jQuery对象.事件名(function(){事件代码})
                $btnEle.click(function(){alter(123)})
    	方式2
        	  jQuery对象.on('事件名',function(){事件代码})
            	  $btnEle.on('click',function(){alter(123)})
    

    有时候使用jQuery的方式1绑定事件如果无法触发 可以切换为方式2

移除事件

移除事件是用off()方法来移除用 .on() 绑定的事件处理程序

  • 移除事件的语法

      jQuery对象.off('事件名',function(){事件代码})
    举例: $btnEle.off('click',function(){alter(123)})
    

阻止后续事件

  • 触发form表单提交数据动作的标签

    1. <input type="submit">
    2. <button></button>
    

    给已经有事件的标签绑定事件 会先执行绑定的 再去执行默认的
    我们也可以让标签之前的事件不执行

  • 阻止表单提交的方法

    1. return false

    2. e.preventDefault();

  • 阻止默认表单的实例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
    </head>
    <body>
    
    <form action="">
        <p>username:<input type="text" name="username"></p>
        <input type="submit" value="提交"><button>按我</button>
    
        <script>
            $(':submit').click(function (e){
                alert('一定要细心 千万不要慌!!!')
                // return false
                e.preventDefault()
            })
        </script>
    </form>
    </body>
    </html>
    

事件冒泡

当涉及到标签嵌套并且有相同事件的时候,会逐级往上反馈并执行

  • 事件冒泡的处理方法

    $("span").click(function (e) {
            alert("span");
        	  return false;  		方式1
            e.stopPropagation(); 	方式2
        });
    
  • 阻止事件冒泡的例子

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>阻止事件冒泡</title>
    </head>
    <body>
    <div>
        <p>
            <span>点我</span>
        </p>
    </div>
    <script src="jquery-3.3.1.min.js"></script>
    <script>
        $("span").click(function (e) {
            alert("span");
            e.stopPropagation();
        });
    
        $("p").click(function () {
            alert("p");
        });
        $("div").click(function () {
            alert("div");
        })
    </script>
    </body>
    </html>
    

事件委托

  • 创建标签的方式

    创建标签的方式 操作
    JS document.createElement()
    jQuery $('<标签名>')

    事件绑定默认情况下是不会对动态创建的标签生效的 如果想生效需要事件委托

  • 事件委托实例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
    
    </head>
    <body>
    <div>
        <button>点我123</button>
        <button>点我321</button>
    </div>
    
    
        <script>
            // $('button').click(function () {
            //     alert('button按钮 天下无敌')
            // })
            $('div').on('click','button',function () {
                alert('你犯困的样子萌萌哒')
            })
    
        </script>
    </body>
    </html>
    

    ​ 委托指得是标签内部的标签

  • 标签中的每一个按钮都能触发相应的事件

    $("table").on("click", ".delete", function () {
      所触发的事件
    })
    

动画效果

  • 实现动画效果的方法

    方法 作用
    $("标签").show([s,[e],[fn]]) 显示被选元素
    $("标签").hide( ) 隐藏被选元素
    $("标签").toggle( ) hide() 和 show() 方法之间的切换
    $("标签").slideDown( ) 通过调整高度来滑动显示被选元素
    $("标签").slideUp( ) 通过调整高度来滑动隐藏被选元素
    $("标签").slideToggle( ) slideUp() 和 slideDown() 方法之间的切换
    $("标签").fadeIn( ) 逐渐改变被选元素的不透明度,从隐藏到可见
    $("标签").fadeOut( ) 逐渐改变被选元素的不透明度,从可见到隐藏
    $("标签").fadeTo( ) 把被选元素逐渐改变至给定的不透明度
    $("标签").fadeToggle( ) 在 fadeIn() 和 fadeOut() 方法之间进行切换
    $("标签").animate( p,[s],[e],[fn]) 自定义动画效果
    • 参数(p,[s,[e],[fn]])分别代表的意思

      1.p<==>params:一组包含作为动画属性和终值的样式属性和及其值的集合

      2.s<==>speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值

      3.[en]<==>easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"

      4.[fn]:在动画完成时执行的函数,每个元素执行一次。

      ()内一般放毫秒数值即可, 在该时间内完成动态收缩该块级标签

  • 自定义动画示例——点赞

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="x-ua-compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>点赞动画示例</title>
      <style>
        div {
          position: relative;
          display: inline-block;
        }
        div>i {
          display: inline-block;
          color: red;
          position: absolute;
          right: -16px;
          top: -5px;
          opacity: 1;
        }
      </style>
    </head>
    <body>
    
    <div id="d1">点赞</div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
    <script>
      $("#d1").on("click", function () {
        var newI = document.createElement("i");
        newI.innerText = "+1";
        $(this).append(newI);
        $(this).children("i").animate({
          opacity: 0
        }, 5000)
      })
    </script>
    </body>
    </html>
    

Bootstrap框架

https://v3.bootcss.com/getting-started/

posted @   Nirvana*  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示