jQuery快速掌握(看这一篇就够了)

jQuery

定义(更少的代码,做更多的事)

jQuery是一款跨主流浏览器的JavaScript库,封装了JavaScript相关方法调用,简化了JavaScript对HTML DOM操作

  • 操作document对象
  • 创建事件、动画
  • 进行ajax处理

环境搭建

步骤

  • idea的webapp目录下,新建文件夹拷贝jquery
  • html页面使用script标签引入外部文件(jquery文件)
  • 在页面中根据需要调用jQuery封装的函数
<script src="../../jQuery/jquery-3.6.0.js"></script>
<!--
$:jQuery中的函数名
$(document):document为参数,$(document)意思就是把js中使用的document对象转换成jQuery可以使用的对象
ready():该函数是在页面的document对象加载之后执行(也就是js的onload事件结束)-无名函数
-->
<script type="text/javascript">
  $(document).ready(function () {
    alert("jQuery环境搭建成功!")
  })

  /*$():调用无名函数,页面dom对象加载后执行,相当于onload事件*/
  $(function () {
    alert("调用无名函数!")
  })
</script>

对象

对象分类

DOM对象

  • 通过js创建的对象

JQuery对象

  • 使用jQuery获取对象

DOM对象转jQuery对象

<script type="text/javascript">
  var dom = document.getElementById("mytext")
  // $jquery 这样声明也可以
  var jquery = $(dom) 
</script>
</head>
<input type="text" id="mytest">

jQuery对象转DOM对象

语法:jQuery对象是一个数组,数组成员是DOM对象,使用下标获取

<script type="text/javascript">
  function test03() {
    var obj = $("#myMath")//obj:是一个jQuery对象里面存储的是DOM类型的数组
    var dom = obj[0]
    // var dom = obj.get(0)
    alert(dom.value*dom.value)
  }
</script>
</head>
<body>
  <input type="text" id="myMath"><br>
  <input type="button" value="计算平方" onclick="test03()">
</body>

选择器

什么是选择器

选择器就是一个字符串(用来定位dom对象的字符串),使用这个字符串作为条件来定位dom对象;

我们可以使用id、class或标签名称来作为选择器使用,定位dom对象。

基本选择器

id选择器

<script type="text/javascript">
  function test01() {
    var obj = $("#my_id")
    alert("id选择器")
  }
</script>
<input type="button" id="my_id" value="id选择器" onclick="test01()">

class选择器(样式选择器)

<script type="text/javascript">
  function test02() {
    var obj = $(".my_class")
    alert("样式选择器")
  }
</script>
<div class="my_class">
  <input type="button" value="class选择器/样式选择器" onclick="test02()">
</div>

标签选择器

<script type="text/javascript">
  function test03() {
    var obj = $("input")
    alert("标签选择器")
  }
</script>
<input type="button" value="标签选择器" onclick="test03()">

所有选择器

语法:${"*"}

组合选择器

语法:${"#id,.class,标签名称"}

表单选择器

标案选择器是根据元素类型type来定义的,而与是否存在form标签无关

<script type="text/javascript">
  function test01() {
    var obj = $(":text");
    //jQuery对象转为dom对象
    var dom = obj.get(0)
    alert(dom.value);
  }

  function test02() {
    var obj = $(":radio")
    //jQuery对象转为dom对象
    for (let i = 0; i < obj.length; i++) {
      var dom = obj[i]
      alert(dom.value)
    }

  }
</script>
</head>
<body>
  <p>文本框:</p>
  <input type="text" value="我是文本框"><br>

  <p>性别:</p>
  <input type="radio" value="man"><br>
  <input type="radio" value="woman"><br>

  <input type="button" value="表单选择器" onclick="test01()">
  <input type="button" value="表单选择器01" onclick="test02()">
</body>

过滤器

过滤器是一个字符串,用来对dom对象进行筛选,和选择器一起使用

jQuery对象中存储的dom对象的顺序和页面中dom对象的顺序一致

基本过滤器

选择第一个/最后一个,保留dom数组中的dom对象

语法:$("选择器:first") $("选择器:last")

选择DOM数组中的中的dom对象

语法:$("选择器:eq(数组索引)")

选择大于/小于某个下标的所有dom成员

语法:$("选择器:gt(下标)") $("选择器:lt(下标)")

表单过滤器

根据表单对象的状态来进行过滤

<!--获取可用的文本框-->
$(":text:enabled")
<!--获取不可用的文本框-->
$(":text:disabled")
<!--获取选中的复选框-->
$(":checkbox:checked")
<!--获取选中的下拉列表框-->
$("选择器>option:selected")
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单过滤器</title>
    <script src="../../jQuery/jquery-3.6.0.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#Btn1").click(function () {
                var obj = $(":text:enabled")
                alert(obj.val())
            })

            $("#Btn2").click(function () {
                var obj = $(":checkbox:checked")
                for (let i = 0; i < obj.length; i++) {
                    alert(obj[i].value)
                }
            })

            $("#Btn3").click(function () {
                var obj = $("select > option:selected")
                for (let i = 0; i < obj.length; i++) {
                    alert(obj[i].value)
                }
            })
        })
    </script>
</head>
<body>
    <input type="text" value="文本1"><br>
    <input type="text" value="文本2" disabled><br>
    <input type="text" value="文本3"><br>
    <input type="text" value="文本4" disabled><br>

    <input type="checkbox" value="篮球">篮球<br>
    <input type="checkbox" value="游戏">游戏<br>
    <input type="checkbox" value="音乐">音乐<br>

    <select id="my_select">
        <option value="java">Java语言</option>
        <option value="c" selected>c语言</option>
        <option value="python">Python语言</option>
    </select><br>

    <button id="Btn1">过滤文本</button><br>
    <button id="Btn2">过滤复选框</button><br>
    <button id="Btn3">过滤下拉框</button><br>
</body>
</html>

函数(语法:$(“选择器”).函数名())

第一部分

val()

操作数组中的DOM对象的value属性值

<!--
	$(选择器).val():无参调用形式,读取数组中第一个DOM对象的value属性值

	${选择器}.val(值):有参调用形式,对数组中的所有DOM对象的value属性值进行统一赋值
-->
text()

操作标签的文本内容,标签开始和结束之间的内容

<!--
	text():无参调用形式,把DOM数组中的所有dom对象的文本内容链接起来,形成一个字符串并返回

	text(参数):有参调用形式,对数组中的所有DOM对象进行统一赋新的文本(覆盖,显示在所匹配元素内部)
-->
attr()

操作value、文本内容以外的属性

<!--
	attr("属性名"):获取dom数组中第一个dom对象对应该属性名的属性值

	attr("属性名","属性值"):给dom数组所有dom对象的这个属性名赋属性值
-->
栗子
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>第一组jQuery函数</title>
    <script src="../../jQuery/jquery-3.6.0.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#btn1").click(function () {
                var obj = $(":text")
                alert(obj.val())
            })

            $("#btn2").click(function () {
                var obj = $(":text")
                obj.val("haha")
            })

            $("#btn3").click(function () {
                var str = $("div").text()
                alert(str)
            })

            $("#btn4").click(function () {
                var str = $("div").text("我是笨蛋!")
            })

            $("#btn5").click(function () {
                var str = $("img").attr("src")
                alert(str)
            })

            $("#btn6").click(function () {
                var str = $("img").attr("src","../../image/粉色的A梦.webp")
            })
        })
    </script>
</head>
<body>
    <input type="text" value="关羽:打野收割能力偏弱,阵容缺少开团"><br>
    <input type="text" value="吕布:对面阵容偏坦度,阵容缺少开团"><br>
    <input type="text" value="花木兰:对面控制偏多,对线英雄很硬"><br>
    <br>
    <br>
    <div>
        <div>王者荣耀的匹配机制很恶心</div>
        <div>,再不进行优化,热度只能越来越低!</div>
    </div>
    <br>
    <br>
    <img src="../../image/多啦A梦.webp"><br>


    <button id="btn1">获取第一个文本框的值</button><br>
    <button id="btn2">给所有文本框统一赋值</button><br>
    <button id="btn3">把div标签的文本值进行拼接</button><br>
    <button id="btn4">div标签的文本值重新进行设置</button><br>
    <button id="btn5">获取图片的路径</button><br>
    <button id="btn6">设置图片的路径</button><br>
</body>
</html>

第二部分

remove()

删除选择器选中的dom对象和子对象

empty()

删除选择器选中的dom对象的子对象

append()

给dom对象的后面增加新的dom对象(“追加”,注意:所匹配的元素标签和要添加的内存是“父子关系”)

html()
<!--
	html():获取dom数组中第一个dom对象的文本值(html()返回结果相当于innerHTML)

	html(参数):给dom数组所有dom对象设置新的文本内容(覆盖,显示在所匹配元素内部)
-->
栗子
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>>第二组jQuery函数</title>
    <script src="../../jQuery/jquery-3.6.0.js"></script>
    <script type="text/javascript">
        $(function () {
            //无名函数,当dom对象加载完成之后再加载js代码,相当于onload
            $("#btn1").click(function () {
                $("select").remove()
            })

            $("#btn2").click(function () {
                $("select").empty()
            })

            $("#btn3").click(function () {
                $("#my_div").append("<button id=\"btn3\">append方法测试</button><br>")
            })

            $("#btn4").click(function () {
                var str = $("span").html()
                alert(str)
            })

            $("#btn5").click(function () {
                var str = $("span").html("神奇")
            })
        })
    </script>
</head>
<body>
    <select id="刺客">
        <option value="01">云樱</option>
        <option value="01"></option>
        <option value="01">橘右京</option>
    </select>
    <br>
    <br>
    <div id="my_div" style="background-color: aquamarine">
        我的游戏
    </div>
    <br>
    <br>
    <span>学习<b>打游戏</b>难吗?</span>
    <br>
    <span>打王者毒药</span>

    <br>
    <button id="btn1">remove方法测试</button><br>
    <button id="btn2">empty方法测试</button><br>
    <button id="btn3">append方法测试</button><br>
    <button id="btn4">html无参方法测试</button><br>
    <button id="btn5">html有参方法测试</button><br>
</body>
</html>
each()

循环函数,遍历数组、json字符串、dom数组

语法1:$.each(要执行循环的变量,function(index,element){处理函数})

  • $:jQuery对象调用each方法
  • “要执行循环的变量”:数组、json字符串、dom数组
  • “function”:循环的处理函数,每个遍历的对象都要执行一次
  • index:循环定义的索引
  • element:和index对应的成员

语法2:$("选择器").each(function(index,element){处理函数})

  • 专门用来循环DOM数组
<script type="text/javascript">
  $(function () {
    var json = {"name":"mtf","age":22,"study":"java"}
    $.each(json,function (index,element) {
      //index:key
      //element:value
      console.log("json字符串的key:"+index+"   value:"+element)
    })
  })
</script>
after()、before()

在所匹配的元素标签的后面或前面追加内容(注意:所匹配元素标签和要添加的内容“二者平级”)

事件

为页面元素绑定事件,意思就是绑定的页面元素如果发生指定动作,那么就会执行该元素绑定的事件

定义元素监听事件

方式一(该方式仅适合给现有的元素加事件)

语法:$(“选择器”).事件名称(事件的处理函数)

  • “事件名称”:就是js中去掉on部分的事件,比如onclick - >click
  • “事件处理函数”:函数定义,当事件发生时,执行这个函数

错误实例:

  • 浏览器打开网页点击按钮并没有打开“弹窗”
  • 分析:监听事件和页面元素加载一样,都是从上到下进行加载,因此监听事件首先被加载,但是没有找到id为myBtn 的元素(它还没有被加载),所以点击按钮不触发事件
  • 解决: $(function (){ }) 调用jQuery的无名函数,相当于js中的onload事件结束
<script src="../../jQuery/jquery-3.6.0.js"></script>
<script type="text/javascript">
  $("#myBtn").click(function () {
    alert("事件监听成功!")
  })
</script>
</head>
<body>
  <input type="button" value="测试监听事件" id="myBtn">
</body>
<script type="text/javascript">
  $(function () {
    $("#myBtn").click(function () {
      alert("事件监听成功!")
    })
  })
</script>
</head>
<body>
  <input type="button" value="测试监听事件" id="myBtn">
</body>
方式二(该方式还能够给动态生成的元素加事件)

语法:$(“选择器”).on(事件名称,function(){处理事件})

  • 事件名称:去掉on的js事件
  • function:事件处理函数
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>定义监听事件</title>
    <script src="../../jQuery/jquery-3.6.0.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#myBtn1").click(function () {
                alert("事件监听成功!")
            })

            $("#myBtn2").on("click",function () {
                alert("事件监听成功!")
            })
        })
    </script>
</head>
<body>
    <input type="button" value="测试监听事件方式一" id="myBtn1"><br>
    <input type="button" value="测试监听事件方式二" id="myBtn2">
</body>
</html>

ajax

jQuery对ajax进行了封装,也就是说我们可以选择不再原生的ajax,避免重复造轮子

原生Ajax参考博客:

$.ajax()

语法:$.ajax(json格式的参数)

<script type="text/javascript">
  $.ajax({
  url:"",//请求提交的地址
  data:{},//请求提交时携带的数据
  type:"get",//提交的请求方式(默认为get)
  dataType:"json",//希望回调函数返回的数据类型
  //请求成功回调函数
  success:function (data) {
    //成功回调后,后台返回的数据保存在data中
  },
  //请求出现错误执行该函数
  error:function () {
  }
})
</script>

$.get()

语法:$.get(url,请求参数,回调函数...) (固定请求方式:get)

$.post()

语法:$.post(url,请求参数,回调函数)

综合运用

级联查询:https://blog.csdn.net/qq_48575500/article/details/125952322

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

凉水不好喝

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值