jQuery 元素操作

文章目录

    • 1. jQuery 样式操作
      • 1.1 操作 css 方法
      • 1.2 设置类样式方法
        • *案例--tab栏切换
      • 1.3 类操作和className 区别
    • 2. jQuery 效果
      • 2.1 显示隐藏效果
      • 2.2 滑动效果
        • 事件切换
        • 动画队列及其停止排队方法
      • 3.3 淡入淡出效果
        • 利用渐进方式调整透明度
        • *案例--高亮突出显示
      • 3.4 自定义动画 animate
        • *案例--王者荣耀手风琴
    • 3. jQuery 属性操作
      • 3.1 设置或获取元素固有属性值 prop()
      • 3.2 设置或获取元素自定义属性值 attr()
      • 3.3 补充知识: 数据缓存 data()
        • *案例--购物车模块-全选全不选
    • 4. jQuery 文本属性值
      • 4.1 普通元素内容 html()
      • 4.2 普通元素文本内容 text()
      • 4.3 获取表单值 val()
        • *案例--购物车模块-增减商品数量 以及计算小计
        • 补充知识:寻找父级元素 parents()
        • 补充知识:最后结果保留两位小数 toFixed(2)
    • 5. jQuery 元素操作
      • 5.1 遍历元素
      • *案例--购物车模块-计算总计和总额
      • 5.2 创建元素
      • 5.3 添加元素
      • 5.4 删除元素
        • *案例--购物车模块-清理购物车
        • *案例--购物车模块-选中商品添加背景
    • 6. jQuery 尺寸、位置操作
      • 6.1 jQuery 尺寸
      • 6.2 jQuery 位置
        • 案例--带有动画的返回顶部
        • *案例--品优购电梯导航
          • 电梯导航案例节流阀(互斥锁)

1. jQuery 样式操作

1.1 操作 css 方法

  1. 会返回值+单位;在这里插入图片描述
  2. 属性值如果是数字可以不加单位和引号在这里插入图片描述
  3. 属性和值(数字)可以不用加引号;复合属性需要采用驼峰命名法;值非数字一定要加引号!在这里插入图片描述

1.2 设置类样式方法

  1. 添加类 addClass()在这里插入图片描述

  2. 删除类 removeClass()在这里插入图片描述

  3. 切换类 toggleClass()在这里插入图片描述

*案例–tab栏切换

在这里插入图片描述

1.3 类操作和className 区别

在这里插入图片描述

2. jQuery 效果

在这里插入图片描述

2.1 显示隐藏效果

show() 、hide() 、toggle()三种函数形参定义一样!
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.2 滑动效果

以下三种函数形参定义与前面显示隐藏效果函数一样!

  1. 在这里插入图片描述
  2. slideUp()
  3. slideToggle()
    在这里插入图片描述
    这种函数可以应用于tab 栏切换!
事件切换

在这里插入图片描述
简单写法:
在这里插入图片描述
更简单写法:
toggle() 函数很强大嘛

动画队列及其停止排队方法

在这里插入图片描述
在这里插入图片描述
stop() 函数必须写在动画前面!
写在后面时,动画效果刚要实现就被停止
在这里插入图片描述
在这里插入图片描述

3.3 淡入淡出效果

以下三种函数形参定义与前面显示隐藏效果函数一样!

  1. fadeIn()在这里插入图片描述
  2. fadeOut()
  3. fadeToggle()
利用渐进方式调整透明度

在这里插入图片描述
以上效果函数中speed 参数必须写;而渐进函数fadeTo() 中必须写speed 参数和opacity 参数!

在这里插入图片描述

*案例–高亮突出显示

在这里插入图片描述

<body>
    <div class="wrap">
        <ul>
            <li><img src="../../../imageForTest/img1.jpg" alt=""></li>
            <li><img src="../../../imageForTest/img2.jpg" alt=""></li>
            <li><img src="../../../imageForTest/img3.jpg" alt=""></li>
        </ul>
    </div>
    <script src="../jQuery.min.js"></script>
    <script>
        $(function () {
            //鼠标进入
            $('.wrap li').hover(function () {
                $(this).siblings().stop().fadeTo(0, 0.5);
            },function () {
                $(this).siblings().stop().fadeTo(0, 1);
            })
        });

    </script>
</body>

3.4 自定义动画 animate

在这里插入图片描述
params 参数定义:
在这里插入图片描述
在这里插入图片描述

*案例–王者荣耀手风琴

在这里插入图片描述
手风琴效果css 样式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. jQuery 属性操作

3.1 设置或获取元素固有属性值 prop()

  1. 获取属性值 prop(“属性”);
  2. 设置属性语法 prop(“属性”,“属性值”)。

元素属性改变事件 change
在这里插入图片描述

3.2 设置或获取元素自定义属性值 attr()

在这里插入图片描述

3.3 补充知识: 数据缓存 data()

data() 是设置或获取元素自定义属性值的另一种方法!
在这里插入图片描述
该方法获取h5 新增自定义属性值 不需要写data-,而且返回的是数字型。

*案例–购物车模块-全选全不选

在这里插入图片描述
补充知识:
jQuery 中 :checked选择器可以选出 checked 属性为true 的元素

$(function () {
    // 1. 全选 全不选功能
    $(".checkall").change(function () {
        $('.j-checkbox, .checkall').prop('checked', $(this).prop('checked'));
    });
    // 2. 小复选框被选中的个数为3 就应该把全选按钮选上,否则全选按钮不选
    $(".j-checkbox").change(function () {
        if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }
    });
})

4. jQuery 文本属性值

4.1 普通元素内容 html()

在这里插入图片描述

4.2 普通元素文本内容 text()

在这里插入图片描述

4.3 获取表单值 val()

获取表单value 值
在这里插入图片描述

*案例–购物车模块-增减商品数量 以及计算小计

注意:寻找元素的兄弟时需要一层一层的找 直接使用类名寻找会将所有的元素找出来!

 $(".increment").click(function () {
        // 得到当前兄弟文本框的 value 值
        var n = $(this).siblings(".itxt").val();
        n++;
        $(this).siblings(".itxt").val(n);
        // 4.小计跟随商品数量变换
        // 要注意寻找元素的兄弟时需要一层一层的找 直接使用类名寻找会将所有的元素找出来
        // var p = $("this").parent().parent().siblings(".p-price").html();
        var p = $("this").parents("p-num").siblings(".p-price").html();
        p = p.substr(1);
        $("this").parents("p-num").siblings(".p-price").html("¥" + p * n.toFixed(2));

    });
    $(".decrement").click(function () {
        // 得到当前兄弟文本框的 value 值
        var n = $(this).siblings(".itxt").val();
        if (n === 1) {
            return false;
        } else {
            n--;
            $(this).siblings(".itxt").val(n);
            var p = $("this").parents("p-num").siblings(".p-price").html();
            p = p.substr(1);
            $("this").parents("p-num").siblings(".p-price").html("¥" + p * n.toFixed(2));
        }
    })
    // 5. 用户直接修改文本框值 计算 小计模块
    $(".itxt").change(function () {
        var n = $(this).val();
        var p = $("this").parents("p-num").siblings(".p-price").html();
        p = p.substr(1);
        $("this").parents("p-num").siblings(".p-price").html("¥" + p * n.toFixed(2));
    })

补充知识:寻找父级元素 parents()
<div class="one">
<div class="two">
<div class="three">I
<div class="four">我不容易</div>
</div>
</div>
</div>
<script>
console.log($(".four").parent().parent().parent());
</script>

之前我们想要找寻子元素的某个父级盒子,需要通过parent() 一级一级的寻找;但是我们现在可以通过parents(‘选择器’) 返回指定祖先元素

<script>
console.log($(".four").parents('one'));
</script>
补充知识:最后结果保留两位小数 toFixed(2)

在这里插入图片描述

5. jQuery 元素操作

5.1 遍历元素

jQuery隐式迭代是对同一类元素做了同样的操作。如果想要给同一类元素做不同操作,就需要用到遍历。

  1. $(“选择器”).each(function(index, domEle){xxx; }) 在这里插入图片描述在这里插入图片描述
  2. $.each(obj, function(index, element){xxx; }) 主要用于遍历数据 – 遍历数组、对象在这里插入图片描述
    在这里插入图片描述

如果要遍历DOM 对象,可以使用前者;如果遍历数据,后者更为合适。

*案例–购物车模块-计算总计和总额

注意:在商品数量变化时需要调用下面的函数!

 // 6.计算总计和总额模块
    function getSum() {
        var count = 0;// 总件数
        var money = 0;// 总金额
        $(".itxt").each(function (i, ele) {
            count += parseInt($(ele).val());
        });
        $(".amount-sum em").text(count);
        $(".p-sum").each(function (i, ele) {
            money += parseFloat($(ele).text().substr(1)).toFixed(2);
        });
        $(".price-sum em").text("¥" + money);
    }

5.2 创建元素

在这里插入图片描述

5.3 添加元素

  1. 内部添加
    element.append() – 添加到元素的后面;
    element.prepend() – 添加到元素的前面。
    在这里插入图片描述

  2. 外部添加
    element.after(“内容”) – 把内容放到目标元素后面;
    element.before(“内容”) – 把内容放到目标元素前面。

在这里插入图片描述

5.4 删除元素

  1. element.emove()-- 删除某个元素
  2. element.empty()-- 删除匹配元素的所有子节点
  3. element.html(“”)-- 删除匹配元素的内容
    在这里插入图片描述
*案例–购物车模块-清理购物车
// 7. 删除商品模块
    // (1) 商品后面的删除按钮
    $(".p-action a").click(function () {
        $(this).parents(".cart-item").remove();
        getSum();
    });
    // (2) 删除选中的商品
    $(".remove-batch").click(function () {
        $(".j-checkbox:checked").parents(".cart-item").remove();
        getSum();
    });
    // (3) 清空购物车 删除所有商品
    $(".clear-all").click(function () {
        $(".j-checkbox").parents(".cart-item").remove();
        getSum();
    });
*案例–购物车模块-选中商品添加背景
 // 1. 全选 全不选功能
    $(".checkall").change(function () {
        $('.j-checkbox, .checkall').prop('checked', $(this).prop('checked'));
        if ($(this.prop(checked))) {
            $(".cart-item").addClass("check-cart-item");
        } else {
            $(".cart-item").removeClass("check-cart-item");
        }
    });
    // 2. 小复选框被选中的个数为3 就应该把全选按钮选上,否则全选按钮不选
    $(".j-checkbox").change(function () {
        if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }
        if ($(this.prop(checked))) {
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
    });

6. jQuery 尺寸、位置操作

6.1 jQuery 尺寸

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2 jQuery 位置

  1. offset()
    在这里插入图片描述
    在这里插入图片描述
  2. position()
    在这里插入图片描述

注意position() 只能获取不能设置值!
在这里插入图片描述

  1. scrollTop()/scrollLeft
    该方法可以获取值也可以设置值!

补充知识:页面滚动事件scroll
在这里插入图片描述
在这里插入图片描述

案例–带有动画的返回顶部

注意:annimate 函数只能是元素才能做动画!
在这里插入图片描述

*案例–品优购电梯导航

在这里插入图片描述
核心算法:导航模块和内容区域是一一对应的

$(function () {
    // 1. 页面中今日推荐模块滚动到页面最上方时 电梯导航模块显示出来
    var toolTop = $(".recommend").offset().top;
    toggleTool();

    // 节流阀
    var flag = true;
    // 3. 封装起来toggleTool() 当页面加载完毕后进行判断
    function toggleTool() {
        if ($("document").scrollTop() >= toolTop) {
            $(".fixedtool").fadeIn();
        } else {
            $(".fixedtool").fadeOut();
        }
    }
    $(window).scroll(function () {
        // 该部分代码是在页面滚动之后才进行 但如果此时页面仍停在此处 且此时刷新页面
        // 不滚动的话电梯导航就不会出现 所以需要将以下代码封装起来toggleTool() 当页面加载完毕后进行判断
        // if ($("document").scrollTop() >= toolTop) {
        //     $(".fixedtool").fadeIn();
        // } else {
        //     $(".fixedtool").fadeOut();
        // }
        toggleTool();

        // 5. 电梯导航自动设置current 类
        if (flag) {
            $(".floor .w").each(function (i, ele) {
                if ($(document).scrollTop >= $(ele).offset().top) {
                    $(".fixedtool li").eq(i).addClass(".current").siblings().removeClass();
               } 
            });
       }
    });
    // 2. 点击电梯导航页面可以滚动到相应内容区域 导航模块和内容区域是一一对应的
    $(".fixedtool li").click(function () {
        flag = false;
        console.log($(this).index());
        var current = $(".floor .w").eq($(this).index()).offset().top;
        $("body, html").stop().animate({
            scrollTop: current
        }, function () {
            flag = true;
        });
        // 4. 点击之后给当前小li 添加current 类名 姐妹移除current 类名
        $(this).addClass("current").siblings().removeClass();
    });
})
电梯导航案例节流阀(互斥锁)

在这里插入图片描述
想要的效果:点击某个小li 时就直接选择当前小li ,而不是一个一个的选择知道选择到当前小li 。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

国务院办公厅发布:政府类网站网页设计规范(试行)

国务院办公厅于2019年12月发布了《政府类网站网页设计规范&#xff08;试行&#xff09;》。该规范的发布旨在统一政府类网站的设计风格和标准&#xff0c;提升政府网站的用户体验和可访问性&#xff0c;推动政府信息公开和服务的提升。 该规范涵盖了政府类网站的各个方面&…

Java IO流(超详细!)上篇

目录 一、File类1、操作文件和目录 二、I/O流概述1、按流向划分&#xff1a;输入流和输出流2、按处理单元划分&#xff1a;字节流和字符流3、按流的角色划分&#xff1a;节点流和处理流 三、字节流1、字节输出流基类&#xff1a;OutputStream2、字节输出流FileOutputStream类3、…

未来已来?国内10家AI大模型盘点(附体验网址)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、阿里云——通义千问2、科大讯飞——星火大模…

全局过滤器实现Jwt校验

从Session到Jwt 之前我写过一篇 什么是 httpsession &#xff1a; 理解HttpSession 在经典的那个登录场景中&#xff1a; 客户端第一次访问的时候 需要登录 登录成功之后 后面再次访问的时候 为了让服务器认识 这是已经登录成功的我 在session中存储的用户的信息。 现在我…

【leetcode】628.三个数的最大乘积

前言&#xff1a;剑指offer刷题系列 问题&#xff1a; 给你一个整型数组 nums &#xff0c;在数组中找出由三个数组成的最大乘积&#xff0c;并输出这个乘积。 示例&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;6思路1&#xff1a; 先去计算输入列表 nums …

蓝桥杯刷题(十三)

1.煤球数目 代码 cnt ans 0 start 1 a [] while cnt<100:ansstartstart 1t ansstartcnt1a.append(ans) print(sum(a))2.奖券数目 代码 def f(x)->bool:while x:if x%104:return Falsex//10return True ans 0 for i in range(10000,100000):if f(i):ans1 print(a…

鸿蒙实战开发:【国际化部件】

简介 国际化部件为应用提供了一系列国际化接口&#xff0c;包括&#xff1a;时间日期格式化、数字格式化、月份星期格式化、单复数、度量衡等相关接口。基于这些国际化接口&#xff0c;开发者可以设计并实现具有良好国际化能力的应用&#xff0c;从而可以高效、低成本的实现应…

(一)基于IDEA的JAVA基础4

注释文本&#xff0c;注释模版 单行注释://开头放在代码前面&#xff0c;对少部分。 多行注释:快捷方式ctrlshift/,对段落代码注 释。 文档注释:/**……**/&#xff0c;用于声明作者或创作时 间。 文档注释如何设置&#xff0c;首先找到File中…

[flask]flask的路由

路由的基本定义 路由就是一种映射关系。是绑定应用程序&#xff08;视图&#xff09;和url地址的一种一对一的映射关系&#xff01;在开发过程中&#xff0c;编写项目时所使用的路由往往是指代了框架/项目中用于完成路由功能的类&#xff0c;这个类一般就是路由类&#xff0c;…

vscode git图形化使用教程(一文秒懂,快速上手)

vscode git图形化使用教程&#xff08;一文秒懂&#xff0c;快速上手&#xff09; vscode 图形化 git  ​ 右键 checkout 功能&#xff0c;切换到当前分支 &#xff08;如果想要切换分支&#xff0c;必须要先上传当前更改的再切换分支&#xff0c;切换完分支后变为之前分支内…

网络编程3.21作业

1.现象 1.增 2.删 3.改 4.查 2.源码 #include<myhead.h>int callback(void* arg,int a,char **msgtext,char **msgheader){if(*(int *)arg0){for(int i0;i<a;i){printf("%s\t",*(msgheaderi));}printf("\n");}for(int i0;i<a;i){printf(&quo…

【Linux】深入了解Linux磁盘配额:限制用户磁盘空间的利器

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux ⛳️ 功不唐捐&#xff0c;玉汝于成 前言 在多用户环境下管理磁盘空间是服务器管理中的一项重要任务。Linux提供了强大的磁盘配额功能&#xff0c;可以帮助管理员限制用户或组对文件系统…

3.21总结​.Codeforces 第 935 轮(第 3 组)(A~D)题解​

一.Codeforces 第 935 轮&#xff08;第 3 组&#xff09;(A~D)题解 (直接给原文了,我电脑的翻译就是一坨.......) 这到题是一道思维题,理解题目意思就会觉得很简单首先内向的人肯定是一个人一个帐篷,我们只要关心外向的人就可以了,我们只要分外向的人可不可以被3整除,分成两种…

找不到msvcp110.dll无法继续执行程序的多种解决方法

在计算机操作系统中&#xff0c;msvcp110.dll文件扮演着至关重要的角色。作为Microsoft Visual C Redistributable Package的一部分&#xff0c;这个特定的dll文件包含了系统运行多种应用程序所必需的关键运行时库函数。许多Windows应用程序依赖于msvcp110.dll文件来执行基本操…

畅谈AIGC,ISIG-AIGC技术与应用发展峰会成功举办

3月16日&#xff0c;第四届ISIG中国产业智能大会在上海中庚聚龙酒店如期开幕&#xff0c;此次大会由苏州市金融科技协会指导、企智未来科技&#xff08;RPA中国、LowCode低码时代、AIGC开放社区&#xff09;主办。大会聚集了来自不同领域的专家学者、行业领军人物及技术研发者&…

亚信安慧AntDB:数字化创新背后的数据力量

亚信安慧AntDB的“融合实时”的特性&#xff0c;不仅使得数据库具备了更强大的适应性&#xff0c;更让企业在不同业务场景下能够更好地实现业务目标&#xff0c;释放出更大的商业价值。融合实时的特性让AntDB具有了高度灵活性和实时性&#xff0c;使其能够满足企业在不同业务需…

【机器学习】深入解析线性回归模型

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

基于springboot的学生心理健康评估系统

技术&#xff1a;springbootvuemysql 一、系统背景 这次开发的学生心理咨询评估系统有管理员和用户。管理员可以管理个人中心&#xff0c;用户管理&#xff0c;试题管理&#xff0c;试卷管理&#xff0c;考试管理等。用户参加考试。经过前面自己查阅的网络知识&#xff0c;加上…

智能模型新篇章:RAG + Fine-Tuning 混合增强策略

一、前言 在之前的探讨中&#xff0c;我们已经分别深入了解了RAG&#xff08;检索增强生成&#xff09;和 Fine-tuning&#xff08;微调&#xff09;这两种优化大型语言模型的方法&#xff0c;探讨了它们在不同业务场景下的适用性、优势及局限。然而&#xff0c;我们很少讨论将…

解读 Xend Finance:向 RWA 叙事拓展,构建更具包容性的 DeFi 体系

在二十世纪后&#xff0c;非洲地区陆续爆发了主权运动&#xff0c;这也让非洲大陆逐渐摆脱“殖民地”的标签。目前&#xff0c;非洲大陆公有 54 个主权国家&#xff0c;接近 15 亿且仍在飙升的人口规模&#xff0c;其 GDP 已经与印度相当&#xff0c;且仍旧处于飞速的发展进程中…
最新文章