IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> jQuery学习笔记之jQuery常用方法 -> 正文阅读

[JavaScript知识库]jQuery学习笔记之jQuery常用方法

jQuery 操作标签的内容

html() 方法

html() 方法相当于原生 JS 中的 innerHTML 属性,用来获取或设置标签内部内容。方法可以传递一个参数,自定义的字符串内容。
? 获取:文本和内部标签,获取时只能获取第一个元素内部的文案
语法:jQuery对象.html();
? 设置:若设置标签时,标签会被渲染
语法:jQuery对象.html(‘文本内容’);
示例

// 获取时只能获取第一个元素内部的文案
console.log($box.html())
// 如果传递参数,批量更改元素内部的内容
$box.html("这是一个新的内容")

在这里插入图片描述

// 如果内部的字符串包含了标签的语法的字符,会按照 html 语法进行加载
$box.html('这是新增加的子级<p>这是段落</p>')

在这里插入图片描述

text() 方法

text() 方法相当于原生 JS 中的 innerText 属性,用来获取或设置标签内部文字。
? 获取:获取标签内部的文字内容,忽略标签
语法:jQuery对象.text();
? 设置:若设置标签时,标签会被当做普通文本
语法:jQuery对象.text(‘文本内容’);
示例

// 获取,获取所有的标签内部的文字内容,忽略标签
    console.log($box.text())

在这里插入图片描述

// 设置,会将书写的内容都当成普通文字,不会按照标签加载
$box.text("普通文本<p>段落</p>")

在这里插入图片描述

val() 方法

val() 方法相当于原生 JS 中的 value 属性,用来获取或设置表单元素内容。
? 获取:表单元素的 value 属性的值
语法:jQuery对象.val();
? 设置:表单元素的value 值
语法:jQuery对象.val(‘文本内容’);

jQuery 操作标签的属性

attr() 方法

attr:全称 attribute,属性的意思。作用:用来获取或者设置标签的属性值。既可以设置或获取已规定好的属性,还可以获取设置自定义的属性
? 设置标签的属性 语法:jQuery对象.attr(name,value);

// 标签属性设置:需要传 2 个参数
$pic.attr("src","images/cat2.jpg")    
$pic.attr("hobby","sleep")  // 设置自定义的属性

? 获取标签属性值 语法:jQuery对象.attr(name);

// 获取标签属性的值:需要 1 个参数
console.log($pic.attr("alt"))
console.log($pic.attr("hobby"))  // 获取自定义的属性

removeAttr() 方法

作用:移除标签的属性
语法:removeAttr(name);

prop() 方法

针对:selected、checked、disabled 等表单元素的属性。此类属性的属性值与属性名相同。
? 获取 语法: ( ′ i n p u t ′ ) . p r o p ( ′ 属 性 名 ′ ) ; ? 设 置 语 法 : ('input').prop('属性名'); ? 设置 语法: (input).prop();?(‘input’).prop(‘属性名’,值);
示例

// prop() 方法,直接操作的就是布尔值
console.log($btn.prop("disabled")) //禁用按钮设置,输出值为布尔值
$btn.prop("disabled",false) // 开启按钮

jQuery 操作样式方法

css() 方法

jQuery 对象有一个 css() 的方法,用于调用 css 属性值或者更改 css 属性值。
? 语法:jQuery对象.css(name,value);
? 参数1:字符串格式的 css 样式属性名
? 参数2:设置或更改的属性值。
注意:
? 一个参数:表示调用 css 属性的值,得到的是某个元素的计算后样式,值为字符串格式。

 // css() 传一个参数:获取对应的属性值
 console.log($box.css("width")) // 获取width的属性值

? 两个参数:表示设置 css 样式属性,第二个参数可以是字符串格式的属性值,如果带单位的数字的属性值,可以写成带单位的字符串格式、不带单位的字符串、纯数字、带 += 等赋值运算的字符串。

// css() 传入两个参数:设置或更改对应的属性值
$box.css("width","400px")
$box.css("width","400")
$box.css("width",500)
$box.css("width","+=100px") // 在原有值得基础上加上100

? css() 方法的第一个参数,复合属性的单一属性写法可以是驼峰命名法,也可以是横线写法。

console.log($box.css("background-color"))
console.log($box.css("backgroundColor"))

? 可以给同一个对象同时设置多条 css 属性,将多条属性的属性和属性值写成对象格式,传给 css() 的参数。

$box.css({
  "width": 200,
  "height": 300
})

jQuery 操作类名方法

addClass() 添加类名

?语法:jQuery对象.addClass(‘类名’)
?参数:字符串格式的类名。

removeClass() 移除类名

删除指定的类名。
? 语法:jQuery对象.removeClass();
? 参数:字符串格式的类名。不传参数,表示删除所有类名。

toggleClass() 类名切换

若这个类名存在,则会移除改类名。否则添加改类名。
? 语法:jQuery对象.toggleClass(‘类名’);
? 参数:字符串格式的类名。
示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box{
            width: 100px;
            height: 100px;
            background-color: pink;
        }
        .demo{
            background-color: skyblue;
        }
    </style>
</head>
<body>
    <input type="button" value="添加" id="btn1">
    <input type="button" value="删除" id="btn2">
    <input type="button" value="切换" id="btn3">
    <div id="box" class="box"></div>

    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        // 给 box 切换 demo 的类名,从而改变背景颜色
        var $box = $("#box");
        var $btn1 = $("#btn1");
        var $btn2 = $("#btn2");
        var $btn3 = $("#btn3");
        // jQuery 中的类名控制方法,只会操作指定的类名,不会影响其他类名
        // 点击按钮 添加,让元素增加一个类名
        $btn1.click(function () {
          $box.addClass("demo")
        })
        // 点击按钮 删除,让元素减少一个类名
        $btn2.click(function () {
          $box.removeClass("demo")
          // 如果不传参数,会删除所有类名
          // $box.removeClass()
        })
        // 点击按钮 切换,让元素在一个类名中进行添加和删除的自动切换
        $btn3.click(function () {
          $box.toggleClass("demo")
        })
    </script>
</body>
</html>

优点:这三个操作类名的方法只操作参数部分的类名,不影响原有的其他类名

hasClass() 检测类名是否存在

? 语法:jQuery对象.hasClass(‘类名’);
? 返回值:true 和 false
示例: 以上一个示例的html结构为例,模拟toggleClass() 类名切换的效果

        // 判断一个类名在标签中是否加载
        console.log($box.hasClass("demo"))
        // 模拟一下 切换 类名的效果
        $btn3.click(function () {
          // 判断 box 是否有 demo 的类名
          if ($box.hasClass("demo")) {
            // 如果有 demo,就删除
            $box.removeClass("demo")
          } else {
            // 如果没有 demo,就添加一个
            $box.addClass("demo")
          }
        })

jQuery 常用事件方法

jQuery对象封装了一系列的事件方法。 事件方法与原生JS事件方法名称类似,不需要写 on,需要jQuery对象打点调用,小括号内的参数是事件函数。
例如点击事件:click()方法。

mouseenter() 方法

鼠标进入一个元素触发的事件。

 $box.mouseenter(function () {
          // 鼠标进入元素,触发事件
          console.log("box-mouse-in")
        })

mouseleave() 方法

鼠标离开一个元素触发的事件。

$box.mouseleave(function () {
  // 鼠标离开元素,触发事件
  console.log("box-mouse-out")
})

对比:mouseenter 和 mouseleave 没有事件冒泡。mouseover 和 mouseout有事件冒泡
示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        #parents{
          width: 200px;
          height: 200px;
          background-color: yellowgreen;
        }
        .box{
            width: 100px;
            height: 100px;
            background-color: pink;
        }
        .demo{
            background-color: skyblue;
        }
    </style>
</head>
<body>    
    <input type="button" value="切换" id="btn1">
    <div id="parents">
      <div id="box" class="box"></div>
    </div>

    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        // 给 box 切换 demo 的类名,从而改变背景颜色
        var $box = $("#box");
        var $btn1 = $("#btn1");
        var $parents = $("#parents");
        // jQuery 中增加了自己的事件类型:mouseenter 和 mouseleave
        // 没有事件冒泡
        $box.mouseenter(function () {
          // 鼠标进入元素,触发事件
          console.log("box-mouse-in")
        })
        $box.mouseleave(function () {
          // 鼠标离开元素,触发事件
          console.log("box-mouse-out")
        })
        $parents.mouseenter(function () {
          // 鼠标进入元素,触发事件
          console.log("parents-mouse-in")
        })
        $parents.mouseleave(function () {
          // 鼠标离开元素,触发事件
          console.log("parents-mouse-out")
        })
    </script>
</body>
</html>

输出结果:
点击粉色背景时,输出
在这里插入图片描述
点击绿色背景时,输出 :box-mouse-out
在div元素外面点击时,只输出:parents-mouse-out

mouseover 和 mouseout的示例:

   // mouseover 和 mouseout :有事件冒泡
    $box.mouseover(function () {
      // 鼠标进入元素,触发事件
      console.log("box-mouse-in")
    })

    $box.mouseout(function () {
      // 鼠标离开元素,触发事件
      console.log("box-mouse-out")
    })
    $parents.mouseover(function () {
      // 鼠标进入元素,触发事件
      console.log("parents-mouse-in")
    })
    $parents.mouseout(function () {
      // 鼠标离开元素,触发事件
      console.log("parents-mouse-out")
    })

输出结果:
点击粉色背景时,输出
在这里插入图片描述
点击绿色背景时,输出
在这里插入图片描述
再回到粉色背景点击时,输出
在这里插入图片描述
在使用时,用 mouseenter 和 mouseleave 替换 mouseover 和 mouseout 更加合适

hover() 方法

该方法相当于将 mouseoenter 和 mouseleave 事件进行了合写。
参数:有两个参数,第一个参数是鼠标移上执行的事件函数,第二个参数是鼠标离开执行事件函数。
示例:

$box.hover(function () {
  // 鼠标移入
  $box.addClass("demo")
},function () {
  // 鼠标离开
  $box.removeClass("demo")
})

jQuery 关系查找方法

$(this) 自己

在原生的 DOM 操作中,事件函数内部有一个 this 关键字指向的就是触发事件的事件源,在 jQuery 中将 this 关键字传递给 $() 方法,得到就是指向自己的 jQuery 对象,就可以使用 JQ 的方法。

   // 获取所有的 p 标签
    var $ps = $("p")
    // 批量添加事件
    $ps.click(function () {
      // 点击自己让自己的颜色变红色
      // this 指向的是触发事件的事件源的原生 JS 对象
      // 需要转换成 jQuery对象
      $(this).css("background-color","red")
    })

parent() 父级

jQuery 对象都有一个 parent() 方法,得到的是自己的父亲级。父级得到的也是一个 jQuery 对象,直接继续打点调用 JQ 方法和属性。

// 获取所有的 p 标签
var $ps = $("p")
// 批量添加事件
$ps.click(function () {
  // 找到事件源的父级元素,添加黄色背景
  $(this).parent().css("background-color","yellow")
})

children() 子级

jQuery 对象内部有一个 children() 方法,可以得到自己的所有子级元素组成的jQuery对象。得到的子级组成的 jQuery 对象可以继续调用 JQ 方法和属性。获得子级时,不限制标签类型。

    var $box = $(".box")
    // 通过点击 div 获取它的子级元素
    $box.click(function () {
      // 获取子级
      $(this).children().css("background-color","pink")
     })

children() 可以传参数:参数是字符串格式的选择器,在选中所有子级的情况下,保留满足选择器的部分,进行了二次选择。

// 添加参数后,会按照指定的选择器在子级中进行二次选择,
// 例如div元素子级中的p元素添加背景
$(this).children("p").css("background-color","pink")

siblings() 兄弟

jQuery 对象通过调用 siblings() 方法可以得到除了自己以外的所有同级元素(兄弟)组成 jQuery 对象,找到的只能是亲的兄弟,不能是叔叔家的兄弟。得到 jQuery 对象可以继续使用 JQ 的方法和属性。

// 获取所有的 p 标签
var $ps = $("p")
// 批量添加事件
$ps.click(function () {
  // 查找兄弟元素
  $(this).siblings().css("background-color","skyblue")
})

siblings() 方法得到的 jQuery 对象可以进行二次选择,通过给参数传递字符串格式的选择器。示例:

// 给事件源的兄弟元素中的h2元素添加蓝色背景
$(this).siblings("h2").css("background-color","skyblue")

链式调用

jQuery 对象调用任何方法(除了节点关系方法)执行完后,方法都会有一个返回值,返回值就是 jQuery 对象自己,这个现象给我们提供了便利,可以对执行结果继续打点调用 JQ的方法和属性。
可以使用 jQuery 对象进行连续打点调用。
案例:
点击一个元素,让他自己变红色,兄弟级变金色。他们的父级变粉色,父亲的兄弟变蓝色,父亲的兄弟的子级变黄绿色。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    .box {
      width: 1000px;
      height: 80px;
      border: 1px solid #333;
      margin-top: 10px;
    }
    .box p,
    .box h2 {
      float: left;
      width: 80px;
      height: 80px;
      margin-right: 20px;
      background-color: #ccc;
    }
  </style>
</head>
<body>
  <div class="box">
    <p>p</p>
    <p>p</p>
    <p>p</p>
    <p>p</p>
    <h2>h2</h2>
    <h2>h2</h2>
    <h2>h2</h2>
  </div>
  <div class="box">
    <p>p</p>
    <p>p</p>
    <p>p</p>
    <p>p</p>
    <h2>h2</h2>
    <h2>h2</h2>
    <h2>h2</h2>
  </div>
  <div class="box">
    <p>p</p>
    <p>p</p>
    <p>p</p>
    <p>p</p>
    <h2>h2</h2>
    <h2>h2</h2>
    <h2>h2</h2>
  </div>
  <script src="js/jquery-1.12.4.min.js"></script>
  <script>
    // 获取所有的 p 标签
    var $ps = $("p")
    var $box = $(".box")
    // 批量添加事件
    $ps.click(function () {
      $(this).css("background-color", "red")        // 自己变红色
      .siblings().css("background-color", "gold")   // 兄弟变金色
      .parent().css("background-color", "pink")     // 父级变粉色
      .siblings().css("background-color", "blue")   // 父级的兄弟变蓝色
      .children().css("background-color", "yellowgreen")  // 父级的兄弟的子级变黄绿色
    })
  </script>
</body>
</html>

jQuery 其他关系查找方法

(1)find() 后代元素
jQuery 对象可以利用 find() 方法,传递一个参数,参数部分规定的选择器,查找范围是jQuery 对象的所有后代。参数是字符串格式的选择器。
(2)兄弟元素
紧邻的兄弟元素方法:
? next() 下一个兄弟
? prev() 前一个兄弟
多选方法:
? nextAll() 后面所有兄弟
? prevAll() 前面所有兄弟
通过传递参数可以进行二次选择,参数是字符串格式的选择器,在前面或后面兄弟中选中符合选择器规定的部分。
(3)parents() 祖先级
通过该方法得到的是指定对象的包含 body 在内的所有祖先级元素组成的 jQuery 对象。通过传参进行二次选择,参数位置是字符串格式的选择器

综合案例

案例1:发送验证码控制按钮禁用

点击发送验证码之后,按钮禁用,5秒之后取消禁用

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>  
</head>
<body>
  <input type="text">
  <input type="button" value="发送">
  <script src="js/jquery-1.12.4.min.js"></script>
  <script>
    // 获取元素
    var $btn = $("input:button")
    // 添加按钮的点击事件
    $btn.click(function () {
      // 定义一个变量存储时间的数字
      var n = 5;
      // 让按钮被禁用
      // 替换按钮的文字内容
      $(this).prop("disabled",true).val(n + "s 后重新发送")
      // 每隔 1s 更改倒计时内容
      // 通过定时器进行每隔 1s 减时间效果
      var timer = setInterval(() => {
        n--;
        // 文字内容发生变化
        // 定时器内部的this指向的默认为 window
        $(this).val(n + "s 后重新发送")
        // 判断如果时间到了 0 ,就要停止定时器
        if (n <= 0) {
          clearInterval(timer)
          // 5s 结束后,需要让文字恢复 发送
          // 让按钮取消禁用          
          $(this).val("重新发送").prop("disabled",false)
        }
      },1000)
    })
    
  </script>
</body>
</html>

案例2:放大镜切换项

鼠标移上便放大该图片

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link rel="stylesheet" href="index.css">
</head>
<body>
  <!--版心  -->
  <div class="w">
    <!-- 左侧 -->
    <div class="leftBox">
      <!-- 上 -->
      <div class="top">
        <img src="img/m1.jpg">
      </div>
      <ul>
        <li class="active">
          <img src="img/s1.jpg" msrc="m1.jpg" bsrc="b1.jpg">
        </li>
        <li>
          <img src="img/s2.jpg" msrc="m2.jpg" bsrc="b2.jpg">
        </li>
        <li>
          <img src="img/s3.jpg" msrc="m3.jpg" bsrc="b3.jpg">
        </li>
      </ul>
    </div>
    <!-- 右侧 -->
    <div class="rightBox">
      <img src="img/b1.jpg" alt="">
    </div>
  </div>
  <script src="lib/jquery-1.12.4.js"></script>
  <script>
    // 获取元素
    var $imgs = $(".leftBox ul li img");
    var $mimg = $(".leftBox .top img")
    var $bimg = $(".rightBox img")
    // 1.给小图的图片添加鼠标移上事件,切换类名
    $imgs.mouseenter(function () {
      // 排他操作
      // 给图片自己的父级添加类名,让父级的兄弟取消类名
      $(this).parent().addClass("active").siblings().removeClass("active")
      // 2.更改中图和大图的路径
      // 存储路径中的前缀
      var path = "img/";
      // 中图和大图的路径存在了对应小图的自定义属性中
      var msrc = path + $(this).attr("msrc");
      var bsrc = path + $(this).attr("bsrc");
      // 直接设置给对应的图片
      $mimg.attr("src", msrc)
      $bimg.attr("src", bsrc)
    })
  </script>
</body>
</html>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:04:22  更:2021-07-22 14:04:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/29 6:44:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码