前端(jQuery) 5

一、初识jQuery

jQuery 是一个 JavaScript 库。

jQuery 极大地简化了 JavaScript 编程。

jQuery 很容易学习。

二、jQuery 的功能概括为:

// 先引入后使用
            // 语法结构 / 通用格式
            // $(AAA).BBB(CCC)
            // AAA = jq选择器
            // BBB = jq对象.方法名

1、html 的元素选取

DOM = Document Object Model(文档对象模型)

text() – 设置或返回所选元素的文本内容

html() – 设置或返回所选元素的内容(包括 HTML 标记)

val() – 设置或返回表单字段的值

下面的例子演示如何通过 jQuery text() 和 html() 方法来获得内容:

$("#btn1").click(function(){
  alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
  alert("HTML: " + $("#test").html());
});

下面的例子演示如何通过 jQuery val() 方法获得输入字段的值:

$("#btn1").click(function(){
  alert("Value: " + $("#test").val());
});

获取属性 – attr()

jQuery attr() 方法用于获取属性值。

下面的例子演示如何获得链接中 href 属性的值:

$("button").click(function(){
  alert($("#w3s").attr("href"));
});

实操:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>2</title>
    </head>
    <body>
        <button onclick="test1()">button</button>
        <div id="id_a" class="class_a" name="name_a">
            <span>AAA</span>
        </div>

        <script src="../Demo211224/js/jquery-3.6.0.js" type="text/javascript" charset="utf-8">

        </script>
        <script>
            function test1(){// css选择器 =id/class/tag/attr
                // var dom1 = document.getElementById('id_a');
                var jq1 = $("id_a"); // 通过id
                // var jq2 = $("class_a"); // 通过class名
                // var jq3 = $("div");  // 通过标签名
                // var jq4 = $("[name='name_a']"); // 通过name名
                    // var  html = jq1.html();  // innerHtml
                    // jq1.html("<input type = 'text/'>ccc")
                    // alert(html)
                    // var  text = jq1.text(); // innerText
                    // jq1.html("<input type = 'text/'>ccc")
                    // alert(text)

                    // var jq1 = $("div");
                    // jq1.html(function(index,html){ // function 可以得到第几个 也可以得到第几个的  还可以改变它的数值内容
                    // alert(index + "---" + html) // index 找到第几个的标签(下标从0开始,依次输出)
                    // return index +"---" +html  // 改变数值
                    // })

                    // var jq1 = $("div");
                    // var html = $("div")
                    // var html = jq1.html();
                    // alert(html) // 找第一个

                    var jql

                    // 无参数 描述: 返回p元素的内容。
                    //  jQuery 代码:
                        $('p').html();

                    // 参数val 描述:设置所有 p 元素的内容
                    //  jQuery 代码:
                        $("p").html("Hello <b>world</b>!");

                    // 回调函数描述:使用函数来设置所有匹配元素的内容。
                    //  jQuery 代码:
                        $("p").html(function(n){
                            return "这个 p 元素的 index 是:" + n;
                        });

                    // 总结html 以上
                    // 取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。
                    // 在一个 HTML 文档中, 我们可以使用 .html() 方法来获取任意一个元素的内容。
                    // 如果选择器匹配多于一个的元素,那么只有第一个匹配元素的 HTML 内容会被获取。

            }
        </script>

    </body>
</html>

2、html的元素操作

设置内容 – text()、html() 以及 val()

  • text() – 设置或返回所选元素的文本内容
  • html() – 设置或返回所选元素的内容(包括 HTML 标记)
  • val() – 设置或返回表单字段的值

下面的例子演示如何通过 text()、html() 以及 val() 方法来设置内容:

$("#btn1").click(function(){
  $("#test1").text("Hello world!");
});
$("#btn2").click(function(){
  $("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
  $("#test3").val("Dolly Duck");
});

text()、html() 以及 val() 的回调函数

上面的三个 jQuery 方法:text()、html() 以及 val(),同样拥有回调函数。回调函数由两个参数:被选元素列表中当前元素的下标,以及原始

(旧的) 值。然后以函数新值返回您希望使用的字符串。

下面的例子演示带有回调函数的 text() 和 html():

$("button").click(function(){
  $("#w3s").attr({
    "href" : "http://www.w3school.com.cn/jquery",
    "title" : "W3School jQuery Tutorial"
  });
});

attr() 的回调函数

jQuery 方法 attr(),也提供回调函数。回调函数由两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使

用的字符串。

下面的例子演示带有回调函数的 attr() 方法:

$("button").click(function(){
  $("#w3s").attr("href", function(i,origValue){
    return origValue + "/jquery";
  });
});

实操:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>3</title>
    </head>
    <body>
        &#x6807;&#x7B7E;&#x5C5E;&#x6027;
        &#x5E38;&#x89C4;&#x5C5E;&#x6027;  attr(&#x7B80;&#x5355;&#x8BB0; &#x5927;&#x6982;&#x7387;&#x4E0D;&#x4F1A;&#x51FA;&#x9519;)
        <button onclick="test()"> button</button>
        <img src="../../img/1.jpeg">
        &#x8868;&#x5355;&#x5C5E;&#x6027;  prop
        value&#x5C5E;&#x6027; &#x65E2;&#x4E0D;&#x7528;attr&#x4E5F;&#x4E0D;&#x7528;prop  &#x53EA;&#x80FD;&#x7528;val
        <input type="text" value>
        <input type="checkbox" value>
        <input type="checkbox" value>

        <script src="../Demo211224/js/jquery-3.6.0.js" type="text/javascript" charset="utf-8"></script>
        <script>
            // function test(){
            //  var img = $("img");
                // var src = img.attr('src'); // 获取某个标签的属性
                // alert(src)

                // img.attr("src","../../img/1.jpeg") // 设置某个属性

                // var obj = {src:'../../img/1.jpeg',width:'300px',height:'400px'};
                // img.attr(obj)// 设置多个属性

                // img.attr('src',function(index,demo){ // function 获取
                //  alert(index+"=="+demo)
                //  return '../../img/1.jpeg';
                // })
            // }

            // function test1(){
            //  var inputs = $("input[type ='text']");
            //  alert(inputs.prop('checked')) // 直到当前标签是否被选中 true/false
            //  inputs.prop('checked',true)  // 设置多个 获取一个

            // }
            function test2(){
                var inputs = inputs.val(); //不传参就是获取
                var val = inputs.val(); // val 用来获取value属性的值  html/text
                alert(val)
                inputs.val("asdasas");
            }

        </script>

    </body>

</html>

3、css操作

addClass() – 向被选元素添加一个或多个类

removeClass() – 从被选元素删除一个或多个类

toggleClass() – 对被选元素进行添加/删除类的切换操作

css() – 设置或返回样式属性

.important
{
font-weight:bold;
font-size:xx-large;
}

.blue
{
color:blue;
}

jQuery addClass() 方法

下面的例子展示如何向不同的元素添加 class 属性。当然,在添加类时,您也可以选取多个元素:

$("button").click(function(){
  $("h1,h2,p").addClass("blue");
  $("div").addClass("important");
});

也可以在 addClass() 方法中规定多个类:

$("button").click(function(){
  $("#div1").addClass("important blue");
});

jQuery removeClass() 方法

下面的例子演示如何不同的元素中删除指定的 class 属性:

$("button").click(function(){
  $("h1,h2,p").removeClass("blue");
});

jQuery toggleClass() 方法

下面的例子将展示如何使用 jQuery toggleClass() 方法。该方法对被选元素进行添加/删除类的切换操作:

$("button").click(function(){
  $("h1,h2,p").toggleClass("blue");
});

实操:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>4</title>
        <style type="text/css">
            .class_a{background-color: #00FFFF;}
            .class_b{font-size: 40px;}
        </style>
    </head>
    <body>
        <button onclick="test()">button</button>
        <div> AAA</div>

        <script src="../Demo211224/js/jquery-3.6.0.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            function test(){
                var jq_div = $('div');
                // jq_div.css("color","red");// 两个参数是赋值
                // alert(jq_div.css('color'));// 一个参数时获取
                // jq_div.css({"color":"red","background":"blue"});
                // jq_div.css('heigth':function(index,value){ // 方法的方式
                //  return "";
                // })

                jq_div.addClass('class_a class_b'); // 可以加多个属性  中间用空格分隔
        // 未写完  $("button").click(function(){
        //          $("p:first").addClass("class_a");
        //      });

                jq_div.addClass(function(){
                })// 也存在方法方式
                jq_div.removeClass('class_a')// 清空样式
                jq_div.toggClass('class_a') // 切换样式 (有就删 没有就加)

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

4、html事件操作

jQuery 事件处理方法是 jQuery 中的核心函数。

事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。术语由事件”触发”(或”激发”)经常会被使用。

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
    $("p").hide();
  });
});
</script>
</head>

<body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button>Click me</button>
</body>

</html>

5、html dom遍历和修改

实操:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>6</title>
        <script src="../Demo211224/js/jquery-3.6.0.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div>111</div>
        <div>222</div>
        <div>333</div>
        <div>444</div>
        <button onclick="test()">button</button>
        <script>
            function test(){// 对象遍历  类似于java 动态实例方法
                $("div").each(function(index,element){// element 每个标签对应的dom对象
                    // alert(index+"---"+element)
                    // console.log(element)// element 每个标签对应的dom对象
                    // console.log(&(element).html()) // 每个标签对应的内容
                    // console.log(&(this).html()) // 等价于上面
                    // this  dom对象 和elemen是同一个
                })

                // 遍历
                // 只存在结构上不同 功能相同
                //$.each();// 等价于   自己的得到的   类似于java中静态方法
                // each 传入的是一个(回调)方法
                //jQuery.each();// 等价于  预先js文件中给出的   类似于java中实例方法
                // each 传入的是一个数组 和 一个(回调)方法   两个参数

                // 数组遍历   类似于java静态方法
                $.each([1,2,3,4],function(i,e){// i数组下标  e 数组中每一个元素
                    alert(i+"--"+e)
                });
            }
        </script>
    </body>
</html>

6、js特效和动画效果

jQuery hide() 和 show()

通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素:

$("#hide").click(function(){
  $("p").hide();
});

$("#show").click(function(){
  $("p").show();
});
$(selector).hide(speed,callback);

$(selector).show(speed,callback);

可选的 speed 参数规定隐藏/显示的速度,可以取以下值:”slow”、”fast” 或毫秒。

可选的 callback 参数是隐藏或显示完成后所执行的函数名称。

下面的例子演示了带有 speed 参数的 hide() 方法:

$("button").click(function(){
  $("p").hide(1000);
});

jQuery toggle()

通过 jQuery,您可以使用 toggle() 方法来切换 hide() 和 show() 方法。

显示被隐藏的元素,并隐藏已显示的元素:

$("button").click(function(){
  $("p").toggle();
});
$(selector).toggle(speed,callback);

可选的 speed 参数规定隐藏/显示的速度,可以取以下值:”slow”、”fast” 或毫秒。

可选的 callback 参数是 toggle() 方法完成后所执行的函数名称。

实操:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>7</title>
        <script src="../Demo211224/js/jquery-3.6.0.js" type="text/javascript" charset="utf-8">

        </script>
    </head>
    <body>
        <button onclick="test_hide()">&#x9690;&#x85CF;</button>
        <button onclick="test_show()">&#x663E;&#x793A;</button>
        <button onclick="test_toggle()">&#x5207;&#x6362;</button>
        <div style="border: 1px solid red;">assd</div>

        <button onclick="test()">test</button>



        <span style="position: absolute; border: 1px solid blue;">12345 </span>

        <script>
            function test(){
                    $("span").animate({ // 为span 添加动画  需要加绝对定位
                        top:"200px",
                        left:"300px"
                    },5000)

                // $("div").animate({ // 为div 添加动画
                //  width:'70%',
                //  height:'200px',
                //  fontSize:'50px',
                //  borderTopWidth:'10px',
                //  marginLeft:'20px',
                //  paddingTop:"100px"
                // },2000)
            }

            function test_hide(){
                // $("div").hide(3000);// 隐藏  慢动作  经过5000毫秒隐藏
                // $("div").hide(5000,function(){ // 隐藏完之后会执行的效果
                //  alert(123)
                //});
                $("div").fadeTo(3000,0.4); // 透明度 显现
            }
            function test_show(){ // 显示
                 // $("div").show(5000);// 显示
                 // $("div").slideUp(7000);// slideUp向上收回 slideDown向上收回   高度变化(向上减小)来动态地隐藏所有匹配的元素
                 // $("div").fadeOut(7000); // fadeOut渐渐淡出  fadeIn 渐入/渐进
                  $("div").fadeOut(3000); // 透明度 消失
            }
            function test_toggle(){ // 进行隐藏和显示之间的切换
                 $("div").toggle(4000);
                // $("div").fadeIn(3000); // 透明度  显现
            }
            // 以上三种方式 都不会占用空间  属于 display(隐藏后原有空间仍不占有)
            //  如果要实现visibility(隐藏后原有空间仍占有) 需要使用样式 来完成
        </script>
    </body>
</html>

7、ajax异步请求方式(待更)

三、总结

jQuery还是好用的 YYDS 可以省很多事 降低耦合 提高代码复用 ,明天继续,加油!!

If not now, when? If not me, who? “时不我待,舍我其谁。”

Original: https://www.cnblogs.com/xmczrj/p/15729551.html
Author: 小码成长日记
Title: 前端(jQuery) 5

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573488/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 程序员你是如何降低NPE的?

    程序员,如果系统突然报了一个空指针异常,你肯定像吞了一只苍蝇一样尴尬。 那么如何在日常开发过程中降低NPE? 问题 回答 现状 返回空值会出现大量的空指针异常 目的 改进方法的返回…

    Java 2023年6月8日
    085
  • java基础篇—-多态的使用

    我们都知道面向对象的三大特征:封装,继承,多态.封装就是,给属性提供公开的get,set方法,把具有相同功能的重复的代码抽取出来,形成一个方法;继承使用extends关键字,子类可…

    Java 2023年6月8日
    0100
  • python 读取ini配置文件,csv读取,mongodb

    [main.py] #! /usr/bin/python -*- coding: utf-8 -*- import configparser import csv import t…

    Java 2023年6月16日
    0108
  • 面向对象学习笔记

    面向对象的三大特征: 封装、继承、多态 封装:调用方法而不需要了解方法内部是如何实现的,为什么要这样呢,因为有些方法可能有些标准规范,如果你自己去调用使用的话可能就没有遵守他的规定…

    Java 2023年6月6日
    0100
  • Java se

    一些需要注意的点 ConcurrentHashMap CAS是乐观锁 CopyOnWriteArrayList的add方法 Lamda表达式 lambda 表达式只能引用标记了 f…

    Java 2023年6月9日
    0152
  • SpringBoot源码学习1——SpringBoot自动装配源码解析+Spring如何处理配置类的

    系列文章目录和关于我 一丶什么是SpringBoot自动装配 SpringBoot通过SPI的机制,在我们程序员引入一些starter之后,扫描外部引用 jar 包中的 META-…

    Java 2023年6月14日
    076
  • 避坑手册 | JAVA编码中容易踩坑的十大陷阱

    JAVA编码中存在一些容易被人忽视的陷阱,稍不留神可能就会跌落其中,给项目的稳定运行埋下隐患。此外,这些陷阱也是面试的时候面试官比较喜欢问的问题。 本文对这些陷阱进行了统一的整理,…

    Java 2023年6月7日
    0206
  • 多线程(多线程实现方式二【Runnable接口实现】)

    Runnable接口实现多线程 测试类 继承类Thread–实现卖电影票 利用Runnable接口实现电影票的售票 解决线程安全问题—-解决卖电影票程序问题…

    Java 2023年6月5日
    092
  • 程序员的10个好习惯

    我总结了 10 个程序员的好习惯,今天分享给大家。 1. 引入新的技术栈的时候,要以官方文档为主 在项目里,无论使用新的 jar 包,还是用新的中间件,一定要去看官方文档。 现在网…

    Java 2023年6月7日
    082
  • 聊天软件的后端架构NIO

    聊天软件等的技术,朋友圈,钉钉,微博分两种技术模式:1.读扩散:也就是拉模式消息会存储到自己的发件箱里面,然后让每个上线的人去拉取未读消息,缺点是每次都要去好多底线去拉取数据,读操…

    Java 2023年6月14日
    071
  • Session管理之ThreadLocal之线程安全

    在各种Session 管理方案中, ThreadLocal 模式得到了大量使用。ThreadLocal 是 Java中一种较为特殊的线程绑定机制。通过ThreadLocal存取的数…

    Java 2023年5月30日
    090
  • jeesite复杂查询语句实现

    在一开始用jeesite进行开发的时候,偶尔会碰到许多问题,解决方式一般也有很多方法 一、多表查询的时候,怎么添加子表的条件进行查询? 举例:有一个文件信息表file,关联了用户表…

    Java 2023年6月5日
    081
  • Spring的RestTemplate功能举例

    import com.google.common.collect.Maps; import com.shein.dms.common.BasicCase; import lombo…

    Java 2023年5月30日
    072
  • 准备好写播客的准备:Markdown基础语法

    Markdown学习 标题 一级标题 二级标题 三级标题 字体 Hello,World! Hello,World! Hello,World! Hello,World! 引用 引用内…

    Java 2023年6月6日
    092
  • JavaWeb之Servlet、拦截器、监听器及编程思想

    本文包含的内容有: Servlet的理解 自定义Servlet、监听器和过滤器 三者的一点点编程设计思想 后续的学习 JavaWeb是Web开发的重要基础,对Servlet、监听器…

    Java 2023年6月5日
    093
  • 设计模式笔记(二):策略模式

    应用场景: 1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 2、一个系统需要动态地在几种算法中选择一…

    Java 2023年6月6日
    0102
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球