jQuery基础入门+购物车案例详解
jQuery是一个快速、简洁的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
一、jQuery对象
1.jQuery顶级对象: $ =jQuery
2.jQuery是通过选取 HTML 元素,并对选取的元素执行某些操作。
基础语法: $(selector).action();
注:区别于DOM对象
DOM对象:通过原生js获取 属性、方法
jQuery对象:只能用jQuery方法获取
二、jQuery选择器
1.选择器:$("selector")
如果selector里包含多个元素,会生成一个伪数组。【这里jQuery自带的“隐式迭代”会遍历伪数组,其中也自带了“排他性”】
2.设置css样式:$("selector").css("属性","值")
3.设置类
$("selector").addClass("类名")-----追加类名
$("selector").removeClass("类名")-----删除类名
$("selector").toggleClass("类名")-----切换类名
【jQuery选择器.效果/动作-----组合起来使用】
三、jQuery效果
1.显示/隐藏
.show()-----显示
.hidden()-----隐藏
toggle()-----切换
2.滑动
.slideDown()-----滑下来
.slideUp()-----滑上去
.slideToggle()-----上下滑动切换
3.淡入淡出
.fadeIn()-----淡入已隐藏的元素
.fadeOut()-----淡出可见的元素
.fadeToggle()-----在淡入淡出之间进行切换
.fadeTo()-----渐变为给定的不透明度(值介于 0 与 1 之间)
4.自定义动画
$(selector).animate({params},speed,callback);【stop()必须写在动画效果之前,结束上一次动画】
【
jQuery自带的“链式编程”让语句更简洁。
例如:
$(this).addClass("current").siblings().removeClass("current");
// 当前this添加类名current,this的其他所有兄弟移除类名current
】
四、获取属性值
1.获取系统自带属性值:.prop("属性名")
改变属性值:.prop("属性名","值")
2.获取自定义属性值:.attr("属性名")
改变属性值:.attr("属性名","值")
五、文本内容值
1.元素内容:.html()-----类似于原生js中的:.innerHTML()
2.文本内容:.text()-----类似于原生js中的:.innerText()
3.表单内容值:.val()-----类似于原生js中的:.value()
六、元素操作
1.遍历元素:.each(function(index,element){})
index:索引
element:遍历的每一个当前元素
2.创建元素
var 创建的元素变量名=$("元素");
3.添加元素
3.1内部添加:$("父级元素").append/prepend(创建的元素变量名);
3.2外部添加:$("兄弟元素").after/before(创建的元素变量名);
4.删除元素
4.1删除本身:$("元素名").remove();
4.2删除所有孩子:$("元素名").empty();
4.3删除所有内容:$("元素名").html();
七、事件
1.事件注册
1.1单个事件注册:$("element").事件名();
1.2多个事件注册:$("element").on("事件","子元素",function(){});【可给 未来 动态创建的元素绑定】
2.事件对象【只要事件被触发,就有事件对象event产生】
$("element").on("事件",function(event){
event.stopPropagation(); // 停止冒泡事件
event.preventDefault(); // 阻止默认行为
return false;// 阻止默认行为
});
八、购物车案例详解
1.html


2.jQuery代码详解
<script>
$(function() {
// 全选【把全选按钮(checkall)的状态赋值给三个小按钮(j-checkbox)】【事件变化 change()】
$(".checkall").change(function() {
// 获取全选的状态属性 prop()
// $(this).prop("checked");
//赋值 状态给小按钮+其他的全选按钮【并集选择器】
$(".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");
}
})
//小选择控制全选
$(".j-checkbox").change(function() {
// jQuery自带的【:checked 选择器 可以自动识别复选框是否被选中】
// $(".j-checkbox").length【隐式迭代】
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");
}
})
// 点击商品增加
$(".increment").click(function() {
// 获取【当前】兄弟(商品数量)的文本值
var n = $(this).siblings(".itxt").val();
// 商品数量增加
n++;
// 将商品数量的文本值改变
$(this).siblings(".itxt").val(n); //小计模块【当前--this】
// 获取当前商品价格 p 【获取文本 html(), 获取任意祖先元素parents()】
var p = $(this).parents(".p-num").siblings(".p-price").html();
// 把获取的文本 p 的¥截取掉--得到价格数字
p = p.substr(1);
//计算
// $(this).parent().parent().siblings(".p-sum").html("¥" + p * n);
//toFixed(n) 保留n位小数
$(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
getSum();
})
// 点击商品减少【商品数量不能小于1!】
$(".decrement").click(function() {
var n = $(this).siblings(".itxt").val();
// 商品数量减少【判断】
// if (n > 1) {
// n--;
// } else {
// return false;
// }
if (n == 1) {
// 返回false会不再进行后面的代码
return false;
}
n--;
$(this).siblings(".itxt").val(n); // 小计模块
var p = $(this).parents(".p-num").siblings(".p-price").html();
// 把获取的文本 p 的¥截取掉--得到价格数字
p = p.substr(1);
//计算
$(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
getSum();
})
//直接修改文本框内容---小计也要变【表单变化事件 change()】
$(".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-sum").html("¥" + (p * n).toFixed(2));
getSum();
}) //总计模块【文本框值不同,遍历 each】---【封装函数】
getSum(); // 初始调用
function getSum() {
var count = 0; // 计算总数
var money = 0; // 计算总额
// 遍历所有商品数量
$(".itxt").each(function(i, ele) {
count += parseInt($(ele).val()); // ele=每一个的.itxt元素
})
// 修改总数的文本值【text()】
$(".amount-sum em").text(count);
//遍历所有商品价格
$(".p-sum").each(function(i, ele) {
money += parseFloat($(ele).text().substr(1));
})
$(".price-sum em").text("¥" + money.toFixed(2));
} // 删除模块
// 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() {
$(".cart-item").remove();
getSum();
})
});
</script>
jQuery基础入门+购物车案例详解的更多相关文章
- 论如何把JS踩在脚下 —— JQuery基础及Ajax请求详解
一.什么是JQuery? JQuery是一种JavaScript框架,是一堆大神搞出来的能够让前端程序猿敲更少代码.实现更多功能的工具(在此,跪谢各位JQuery开发大大们!!!).JQuery的使用 ...
- 大牛针对零基础入门c语言详解指针(超详细)
C语言指针说难不难但是说容易又是最容易出错的地方,因此不管是你要做什么只要用到C指针你就跳不过,今天咱们就以 十九个例子来给大家简单的分析一下指针的应用,最后会有C语言视频资料提供给大家更加深入的参考 ...
- (十八)整合Nacos组件,环境搭建和入门案例详解
整合Nacos组件,环境搭建和入门案例详解 1.Nacos基础简介 1.1 关键特性 1.2 专业术语解释 1.3 Nacos生态圈 2.SpringBoot整合Nacos 2.1 新建配置 2.2 ...
- Java基础-面向接口编程-JDBC详解
Java基础-面向接口编程-JDBC详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.JDBC概念和数据库驱动程序 JDBC(Java Data Base Connectiv ...
- ELK&ElasticSearch5.1基础概念及配置文件详解【转】
1. 配置文件 elasticsearch/elasticsearch.yml 主配置文件 elasticsearch/jvm.options jvm参数配置文件 elasticsearch/log4 ...
- http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误)
http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误) 一.总结 服务器内部错误可能是服务器中代码运行的时候的语法错误或者逻辑错误 二.http500:服务器内部错误案例详解 只是一 ...
- 第7.27节 Python案例详解: @property装饰器定义属性访问方法getter、setter、deleter
上节详细介绍了利用@property装饰器定义属性的语法,本节通过具体案例来进一步说明. 一. 案例说明 本节的案例是定义Rectangle(长方形)类,为了说明问题,除构造函数外,其他方法都只 ...
- jquery $.trim()去除字符串空格详解
jquery $.trim()去除字符串空格详解 语法 jQuery.trim()函数用于去除字符串两端的空白字符. 作用 该函数可以去除字符串开始和末尾两端的空白字符(直到遇到第一个非空白字符串为止 ...
- Qt零基础教程(四) QWidget详解篇
在博客园里面转载我自己写的关于Qt的基础教程,没次写一篇我会在这里更新一下目录: Qt零基础教程(四) QWidget详解(1):创建一个窗口 Qt零基础教程(四) QWidget详解(2):QWid ...
随机推荐
- python大佬养成计划----flask_bootstrap装饰网页
flask_bootstrap Bootstrap 是 Twitter 开发的一个开源框架,它提供的用户界面组件可用于创建整洁且具有吸引力的网页,而且这些网页还能兼容所有现代 Web 浏览器. Boo ...
- java中如何能把一个字符串转成日期对象
题目3.1: 把一个字符串转成日期对象 当我们想根据输入字符串得到一个日期对象时我们不知道,应该以什么格式写这个字符串,才能被系统正确解析,一种聪明的做法是,马克-to-win,我们先 把日期对象根据 ...
- PAT B1024科学计数法
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...
- Android 接入腾讯IM即时通信(详细图文)
原文地址:Android 接入腾讯IM即时通信(详细图文) | Stars-One的杂货小窝 腾讯云IM官网文档上提供了带UI模块和不带UI模块的,本文是基于带UI模块进行了Module封装,可以方便 ...
- DC-1 靶机渗透
DC-1 靶机渗透 *概况*: 下载地址 https://www.vulnhub.com/entry/dc-1,292/ *官方描述:* DC-1 is a purposely built vulne ...
- LC-76
给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" . 注意: 对于 t 中重复字符 ...
- Ubuntu 安装cmake
Ubuntu 安装 cmake 官网 https://cmake.org 下载地址 https://cmake.org/download/ 参考文档 -<ubuntu下更新cmake版本> ...
- 面试官:为什么Vue中的v-if和v-for不建议一起用?
一.作用 v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 true值的时候被渲染 v-for 指令基于一个数组来渲染一个列表.v-for 指令需要使用 item in item ...
- HTML中的Hack手段之条件注释
通常WEB的好处就是可以跨平台,但这个世界偏偏有个另类,就是IE浏览器.在平常做HTML设计时,有时需要为IE的表示差异而不得不使用一些Hack手段.条件注释就是这类手段之一. 条件注释是IE浏览器的 ...
- pta L2-002 链表去重 +散列表知识小普及+二进制取反补码运算
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805072641245184: 废话:今天忙着学习新知识了,没怎 ...