一文了解jquery

news2025/1/17 4:12:03

簡述

本文主要介紹jquery的重要語法功能,如選擇器,dom操作,事件等處理操作

什麼jquery?

jquery由美国人John Resig(约翰·莱西格)于2006年创建 ,是目前最流行的JavaScript程序库。以輕量,代碼簡潔,兼容性好(即使對萬惡之源的IE也能很好的兼容)而著稱。

jquery的優勢

  1. 引入簡單,輕量化,壓縮版僅有100kb

  1. 出色的Dom封裝能力

  1. 瀏覽器兼容性好

  1. 選擇器功能器強大

jquery語法介紹

基本的語法結構

//此處引入jquery
<script src="js/jquery-3.4.1.min.js"></script>
<script>
// $ 代表了jquery 
     $(selector).action();
</script>

js對象和jquery對象的互相轉換

jquery的對象和方法與JavaScript對象是不同的,不能混用,但允許互相轉換,轉換語法如下

var jsDom = document.getElementById("myid")
var jqDom = $("p")
//js對象轉化為jquery對象
jqDom = $(jsDom)
alert(jqDom.html())
//jquery對象轉化為js對象
jsDom = jqDom.get(0)

jquery選擇器

jquery強大在於其強大的選擇器功能,藉助jquery的選擇器,可以非常方便地實現dom 的操作和事件相應。jquery的選擇器按照使用功能分為三類:基本選擇器,層次選擇器,屬性選擇器。

基本選擇器

基本選擇器包括標簽選擇器、類選擇器、ID選擇器、並集選擇器、交集選擇器和全局選擇器。

<body>
    <p >小秋</p>
    <p class="jy">小月</p>
    <p  id="wan">小夜</p>
    <h3 class="jy">小米</h3>
    <script src="jquery.js"></script>
    <script>
     $("p").css("color","red") //標籤選擇器
     $(".jy").css("color","blue") //類選擇器
     $("#wan").css("color","black") //id選擇器
     $("#wan,.jy").css("color","yellow") //幷集選擇器
     $("h3.jy").css("color","Orange") //交集選擇器
    </script>
    
</body>

層次選擇器

使用層次可以通過父子層級,來操作dom

<body>
    <div id="x">
        <p>p1</p>
        <div>
            <p>p2</p>
        </div>
    </div>
    <h3>222</h3>
    <h3>333</h3>
    <script src="jquery.js"></script>
    <script>
       $("#x p").css("color","red") //忽略層級
       $("#x>p").css("color","yellow")//子級
       $("#x~h3").css("color","gray")//同輩元素選擇器
       $("#x+h3").css("color","blue")//相鄰元素選擇器
    </script>
</body>

屬性選擇器

<style>
div{
width: 100px;
height: 100px;
background-color: #000;
}
.a{
background: palevioletred;
border-radius: 50%;
}
.b{
border:5px dashed darkcyan;
opacity: 0.6;
}
.cn{
background: #000;
color:#FFF;
font-family: 字魂49号-逍遥行书;
}
</style>
<body>
<button id="btn1">试试</button>
<button id="btn2">取消透明度</button>
<button id="btn3">样式切换</button>
<hr>
<div></div>
<h1>中华人民共和国,万岁!</h1>
<script src="js/jquery-3.4.1.min.js"></script>
<script>
$("#btn1").click(function(){
// $("div").addClass("a");
$("div").addClass("a b");
});
$("#btn2").click(function(){
$("div").removeClass("b");
});
$("#btn3").click(function(){
$("h1").toggleClass("cn");
});
</script>
</body>

事件

事件處理也是jquery的強項,下面介紹jquery常用的事件

鼠標事件

jquery的鼠標事件分為三類點擊,觸摸,離開三類事件

    <body>
        <img src="../img/a1.png" width="300">
        <img src="../img/a1.png" width="300">
        <img src="../img/a1.png" width="300">
       
        <script>
        $("img").click( function(){
        //点击一下,换照片
        $(this).attr( "src","../img/a2.png" ); //this就是事件触发的源头
        } );
        $("img").mouseover( function(){ //移动到元素上
        $(this).css( "border","2px solid red" );
        } );
        $("img").mouseout( function(){ //离开元素
        $(this).css( "border","2px solid white" );
        } );
        </script>
    </body>

鍵盤事件

 <form action="">
          <p>帐号: <input id="a" value="请输入帐号..."> </p>
          <p>电话: <input id="b"> </p>
</form>
 <script>
            //获得焦点(激活/点击一下)
            $("#a").focus(function(){
            $(this).val("");
            });
            //失去焦点(未激活/未点击)
            $("#a").blur(function(){
            $(this).val("请输入帐号...");
            });
   </script>

Dom的操作

操作節點

<body>
    <input id="input1"  placeholder="輸入">
    <ul>
        <li>1</li>
        <li>2</li>
    </ul>
    <button id="test1">添加</button>
    <button id="addBefore">加入第一行</button>
    <button id="addAfter">加入最後一行</button>
    <button id="replace">替換內容</button>
    <button id="clone">複製添加</button>
    <button id="remove">移除最後的節點</button>
    <button id="removeAll">清空節點內容</button>
    <script>
      //前兩種函數是操作父子的節點
      $("#test1").click(function(){
           var value = $("#input1").val()
           var newli = $("<li>"+value+"</li>")
           //兩種方法皆可以
          // $("ul").append(newli)
           newli.appendTo("ul")
      })
      $("#addBefore").click(function(){
           var value = $("#input1").val()
           var newli = $("<li>"+value+"</li>")
           //兩種方法皆可以
           $("ul").prepend(newli)
           //兩種方法皆可以
           newli.prependTo("ul")
      })
      //修改同輩節點
      $("#addAfter").click(function(){
           var value = $("#input1").val()
           var newli = $("<li>"+value+"</li>")
           //兩種方法皆可以
          // $("li:last").after(newli)
           newli.insertAfter("li:last")
           
      })
      //替換同輩節點
      $("#replace").click(function(){
           var value = $("#input1").val()
           var newli = $("<li>"+value+"</li>")
         
           //newli.replaceAll("li:eq(1)")

           $("li:eq(1)").replaceWith(newli)
           
      })
      //複製節點
    $("#clone").click(function(){

    $("li:eq(1)").clone().insertAfter("li:last")

    })
    //移除節點
    $("#remove").click(function(){

        $("li:eq(1)").remove()

    })
    //移除節點
    $("#removeAll").click(function(){

        $("li:eq(1)").empty()

    })

      
           
    </script>
    
</body>

節點的遍歷

尋找祖先節點

用于向上遍历 DOM 树的方法 parent() 返回被选元素的直接父元素,仅仅是上一级 (找爸爸) parents() 返回被选元素的所有祖先元素,它一路向上直到文档的根元素,可以选择辈分

   $("#test").click(function(){
            var x = $("b").parent().html();
            alert(x)
            var y = $("b").parents("ul").html();
            alert(y)
            
        })

尋找同輩元素

next() 获取紧邻匹配元素之后的元素 prev() 获取紧邻匹配元素之前的元素 siblings( [selector] ) 获取位于匹配元素前面和后面的所有同辈元素

<script>
  $("#bor").click(function(){
            //下一個
            var x = $("ul").next().text()
            alert(x)
            //上一個
            var y = $("b").prev().text()
            alert(y)
            //id為p1,缺省指的是全部相鄰節點
            var z = $("b").siblings("#p1").text()
            alert(z)
            
        })
</script>

後代元素的遍歷

children( [selector] ) 方法返回被选元素的所有直接子元素

find( 选择器 ) 方法返回被选元素的后代元素,一路向下直到最后一个后代。

<script>
 $("#child").click(function(){
            
            var x = $("ul").children().text();
            alert(x)
            var y = $("ul").children("li:first").text();
            alert(y)
            var z = $("ul").find("b").text();
            alert(z)

        })
</script>

元素的過濾

first():过滤第一个元素 last():过滤最后一个元素 eq(index):过滤到下标为index的元素 not():除了什么之外的元素 is():返回布尔,判断是不是这种元素

<script>
   //過濾
        $("#grep").click(function(){
            //第一個
            var x = $("li").first().text()
            alert(x)
            //最後一個
            var y = $("li").last().text()
            alert(y)
            //序號為1
            var o = $("li").eq(1).text()
            alert(o)
            //除了序號為1的
            var p = $("li").noeq(1).text()
            alert(p)
            //判斷父節點是否為li
            var q = $("b").parent().is("li")
            alert(q)



        })
</script>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="jquery.js"></script>
</head>
<body>
    <div>
        <ul>
            <li>1</li>
            <li>
                
                <p id="p1">23</p>
                
                <b>b</b>
            </li>
            <li>2</li>
        </ul>
        <p>數據</p>
            

            
            
    </div>
    <button id="test">獲取父節點數據</button>
    <button id="bor">獲取相鄰節點元素</button>
    <button id="child">獲取子節點元素</button>
    <button id="grep">過濾</button>
         
    <script>
        $("#test").click(function(){
            var x = $("b").parent().html();
            alert(x)
            var y = $("b").parents("ul").html();
            alert(y)
            
        })
        $("#bor").click(function(){
            //下一個
            var x = $("ul").next().text()
            alert(x)
            //上一個
            var y = $("b").prev().text()
            alert(y)
            //id為p1,缺省指的是全部相鄰節點
            var z = $("b").siblings("#p1").text()
            alert(z)
            
        })
        //獲取子節點
        $("#child").click(function(){
            
            var x = $("ul").children().text();
            alert(x)
            var y = $("ul").children("li:first").text();
            alert(y)
            var z = $("ul").find("b").text();
            alert(z)

        })
        //過濾
        $("#grep").click(function(){
            //第一個
            var x = $("li").first().text()
            alert(x)
            //最後一個
            var y = $("li").last().text()
            alert(y)
            //序號為1
            var o = $("li").eq(1).text()
            alert(o)
            //除了序號為1的
            var p = $("li").noeq(1).text()
            alert(p)
            //判斷父節點是否為li
            var q = $("b").parent().is("li")
            alert(q)



        })

      
    </script>
    
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows快速切换jdk版本号

前言 因为老项目和新项目的需要&#xff0c;在电脑上需要切换jdk1.8和jdk17&#xff08;其它版本jdk同样可以切换&#xff09;。网上有修改配置文件的方式&#xff0c;但是感觉比较繁琐&#xff0c;后来找到了通过bat文件和环境变量来快速切换jdk环境的方法。这里记录分享出出…

rclone挂载webdav详细步骤(含脚本)

挂载说明 文章目录挂载说明文件下载地址&#xff1a;文件夹及文件说明windows安装、配置和挂载操作步骤安装新建连接配置挂载开机自启linux安装、配置和挂载操作步骤安装新建连接配置,见 [链接新建连接配置](#新建连接配置)挂载linux开机自启文件下载地址&#xff1a; 文件下载…

如何实现前端全屏

前言 最近有个需求是要求免登录自动打开看板&#xff0c;然后全屏并播放视频。当然最后自动全屏并播放视频没有实现&#xff0c;写这篇文章是为了记录一下踩的坑。 全屏 网上有挺多现成的组件的&#xff0c;这里就不介绍了&#xff0c;可以自行百度。这里只说通过原生的方法…

手机更换电池-小米8se操作步骤

目录 准备工具&#xff1a; 步骤&#xff1a; 注意事项&#xff1a; 准备工具&#xff1a; 需要更换电池的手机电池背胶&#xff08;左上蓝色&#xff09;缠胶棍&#xff08;手机左边&#xff09;小螺丝刀新电池卡针后盖拆卸片&#xff08;右上三角&#xff09;吸盘后盖背胶 …

Cesium 点位聚合

实现效果 实现方式 通过 new Cesium.EntityCluster(options) 接口对象实现而 new Cesium.DataSource() 有成员变量 clusteringclustering 类型是 EntityCluster代码实现,基于 vue 前端框架 这里使用的是 cesium 沙盒演示中自带的数据进行实现 加载数据 getKMLDTSource() {let o…

cnetsdk:.NET OCR SDK-支持中文-Crack

产品概览 .NET OCR SDK 许可证和价格 OCR SDK 兼容性 CnetSDK .NET OCR Scanner SDK兼容.NET Framework 4.0及以上版本。此 OCR 库软件可用于在任何 CPU 上进行 .NET OCR Windows 和基于服务器的应用程序开发。我们为 x86 和 x64 系统提供 OCR 库解决方案。 OCR 图像格式 这个 …

[学习笔记]黑马程序员-Hadoop入门视频教程

文章目录参考资料大数据导论企业数据分析方向数据分析基本流程步骤明确分析的目的和思路数据收集数据处理数据分析数据展现报告攥写大数据时代大数据定义大数据的5V特征参考资料 黑马程序员大数据Hadoop入门视频教程&#xff0c;适合零基础自学的大数据Hadoop教程 目录 大数据…

C++ 面试题-设计模式类问题(万余字总结)

C 面试题-设计模式类问题1 、说说什么是单例设计模式&#xff0c;如何实现2、 简述一下单例设计模式的懒汉式和饿汉式&#xff0c;如何保证线程安全3、 请说说工厂设计模式&#xff0c;如何实现&#xff0c;以及它的优点4 、请说说装饰器计模式&#xff0c;以及它的优缺点5 、请…

数据挖掘,计算机网络、操作系统刷题笔记40

数据挖掘&#xff0c;计算机网络、操作系统刷题笔记40 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;orac…

TCP协议面试灵魂12 问(三)

等待2MSL的意义 如果不等待会怎样&#xff1f; 如果不等待&#xff0c;客户端直接跑路&#xff0c;当服务端还有很多数据包要给客户端发&#xff0c;且还在路上的时候&#xff0c;若客户端的端口此时刚好被新的应用占用&#xff0c;那么就接收到了无用数据包&#xff0c;造成…

C++高级教程——C++ 异常处理

C 异常处理C 异常处理抛出异常捕获异常C 标准的异常定义新的异常C 异常处理 异常是程序在执行期间产生的问题。C 异常是指在程序运行时发生的特殊情况&#xff0c;比如尝试除以零的操作。 异常提供了一种转移程序控制权的方式。C 异常处理涉及到三个关键字&#xff1a;try、c…

【Linux】gdb的使用

文章目录&#x1f3aa; Linux下gdb的使用&#x1f680;1.gdb调试准备&#x1f680;2.gdb指令集&#x1f680;3.gdb指令演示⭐3.1 展示源文件代码⭐3.2 断点与多步调试操作⭐3.3 常用操作指令&#x1f3aa; Linux下gdb的使用 GDB 全称“GNU symbolic debugger”&#xff0c;是一…

dp(十)* 0-1背包与完全背包的组合数问题 搞清组合数与排列数

目录 兑换零钱(二)_牛客题霸_牛客网&#xff08;完全背包&#xff09; 494. 目标和&#xff08;0-1背包&#xff09; 分割等和子集_牛客题霸_牛客网 兑换零钱(二)_牛客题霸_牛客网&#xff08;完全背包&#xff09; 描述 给定一个整数数组 nums 表示不同数额的硬币和一个正…

拉伯证券|社会消费复苏将是2023年主旋律

安排指出&#xff0c;兔年新年黄金周社会消费平稳复苏。全国范围看&#xff0c;依据国家税务总局增值税发票数据&#xff0c;2023年新年黄金周&#xff08;1月21日-27日&#xff0c;阴历岁除至正月初六&#xff09;&#xff0c;全国消费相关工作销售收入同比2022年新年假日添加…

Qt 进程(基本用法)

进程的使用情况&#xff1a; 运行的当前的应用中调用外部程序来实现功时调使用到进程。 比如&#xff1a;在你的运行程序中&#xff0c;开启迅雷或开启其他程序QProcess类用来 启动一个外部程序并与之通信QProcess类 常用一些函数&#xff1a; start&#xff08;&#xff09;…

Pycharm 中Torch安装方法

1.使用自带工具安装依次打开菜单&#xff1a;File->Setting点击号&#xff0c;搜索torch选择1.13.0版本安装安装错误&#xff1a;具体包含很长一段错误记录&#xff0c;如下&#xff1a;Collecting torch1.13.0Downloading https://files.pythonhosted.org/packages/ec/5e/8…

网络协议栈简单设计(tcp)

网络协议栈简单设计(tcp) 接着这篇文章写的 TCP相对于Udp&#xff0c;分为两个部分&#xff1a;连接&#xff08;三次握手、四次挥手&#xff09;、交互&#xff08;数据传输&#xff09; 三次握手 tcp包结构体定义 依照tcp包头字段定义就行&#xff1a; 注意&#xff0c;…

jenkins配置

ssh配置 选择Manager Jenkins 选择Configure System&#xff0c;进入页面一直拉到底 Remote Directory&#xff1a;是你需要从jenkins服务拷贝到远程应用服务指定的目录 高级&#xff1a;可以配置ssh密码 配置maven&#xff0c;git&#xff0c;jdk 选择 Global Tool Configur…

dpdk无锁队列rte_ring实现分析

1. 概述 rte_ring(以下简称ring)是一个高效率的无锁环形队列&#xff0c;它具有以下特点&#xff1a; FIFO队列长度是固定的&#xff0c;所有指针存放在数组中无锁实现(lockless)多消费者或单消费者出队多生产者或单消费者入队批量(bulk)出队 - 出队N个对象&#xff0c;否则失…

05.抽象工厂模式

05.抽象工厂模式 概念 抽象工厂模式&#xff1a;提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无须指定他们具体的类。抽象工厂又称为Kit模式&#xff0c;属于对象创建型模式。 抽象工厂可以将统一产品族的单独工厂封装起来&#xff0c;在正常使用中&#xff0…