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 ...
随机推荐
- CCF201503-1图像旋转
问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可. 输入格式 输入的第一行包含 ...
- Column ‘name’ in where clause is ambiguous;
内容 一.异常信息 严重: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw except ...
- Struts的Logic标签的用途
Struts的Logic标签可以根据特定的逻辑条件来判断网页的内容,或者循环遍历集合元素,它和HTML,Bean标签是Struts应用中最常用的三个标签. 它的功能主要是比较运算,进行字符串的匹配,判 ...
- css3种不知道宽高的情况下水平垂直居中的方法
第一种:display:table-cell 组合使用display:table-cell和vertical-align.text-align,使父元素内的所有行内元素水平垂直居中(内部div设置di ...
- drf视图类总结

- hibernate select查询方式总结
https://www.cnblogs.com/xingege/p/4270990.html
- Typora基本使用语法(超好用的代码编辑工具)
Typora代码编辑软件,一款适合新手小白的做笔记工具,操作简单,大家可以去试试......
- zabbix监控SSL证书有效期
想给公司网站加上证书的监控,发现agent无此监控项.科普之后发现需要自行添加脚本以及一些操作. 环境信息 系统版本: Ubuntu20.04 zabbix server版本:5.4 (这个自定义貌似 ...
- Java语言学习day19--7月25日
今日内容介绍1.继承2.抽象类3.综合案例---员工类系列定义 ###01继承的概述 *A:继承的概念 *a:继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系 *b:在Jav ...
- 我用 CSS3 实现了一个超炫的 3D 加载动画
今天给大家带来一个非常炫酷的CSS3加载Loading动画,它的特别之处在于,整个Loading动画呈现出了3D的视觉效果.这个Loading加载动画由12个3D圆柱体围成一个椭圆形,同时这12个圆柱 ...