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基础入门+购物车案例详解的更多相关文章

  1. 论如何把JS踩在脚下 —— JQuery基础及Ajax请求详解

    一.什么是JQuery? JQuery是一种JavaScript框架,是一堆大神搞出来的能够让前端程序猿敲更少代码.实现更多功能的工具(在此,跪谢各位JQuery开发大大们!!!).JQuery的使用 ...

  2. 大牛针对零基础入门c语言详解指针(超详细)

    C语言指针说难不难但是说容易又是最容易出错的地方,因此不管是你要做什么只要用到C指针你就跳不过,今天咱们就以 十九个例子来给大家简单的分析一下指针的应用,最后会有C语言视频资料提供给大家更加深入的参考 ...

  3. (十八)整合Nacos组件,环境搭建和入门案例详解

    整合Nacos组件,环境搭建和入门案例详解 1.Nacos基础简介 1.1 关键特性 1.2 专业术语解释 1.3 Nacos生态圈 2.SpringBoot整合Nacos 2.1 新建配置 2.2 ...

  4. Java基础-面向接口编程-JDBC详解

    Java基础-面向接口编程-JDBC详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.JDBC概念和数据库驱动程序 JDBC(Java Data Base Connectiv ...

  5. ELK&ElasticSearch5.1基础概念及配置文件详解【转】

    1. 配置文件 elasticsearch/elasticsearch.yml 主配置文件 elasticsearch/jvm.options jvm参数配置文件 elasticsearch/log4 ...

  6. http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误)

    http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误) 一.总结 服务器内部错误可能是服务器中代码运行的时候的语法错误或者逻辑错误 二.http500:服务器内部错误案例详解 只是一 ...

  7. 第7.27节 Python案例详解: @property装饰器定义属性访问方法getter、setter、deleter

    上节详细介绍了利用@property装饰器定义属性的语法,本节通过具体案例来进一步说明. 一.    案例说明 本节的案例是定义Rectangle(长方形)类,为了说明问题,除构造函数外,其他方法都只 ...

  8. jquery $.trim()去除字符串空格详解

    jquery $.trim()去除字符串空格详解 语法 jQuery.trim()函数用于去除字符串两端的空白字符. 作用 该函数可以去除字符串开始和末尾两端的空白字符(直到遇到第一个非空白字符串为止 ...

  9. Qt零基础教程(四) QWidget详解篇

    在博客园里面转载我自己写的关于Qt的基础教程,没次写一篇我会在这里更新一下目录: Qt零基础教程(四) QWidget详解(1):创建一个窗口 Qt零基础教程(四) QWidget详解(2):QWid ...

随机推荐

  1. APICloud重磅支持Atom编辑器,并建立开发工具核心库

    APICloud技术再次升级,不仅支持Atom编辑器开发工具,并推出核心开发工具库,使开发者进行App开发更便捷高效. APICloud支持Atom编辑器开发工具 APICloud始终坚持多开发工具支 ...

  2. H5移动端开发

    开发前准备 环境: Node.js LTS版本 git 最新版 文档: 本项目技术栈基于 ES2016 VueJS vux 快速开始 1.克隆项目 git clone https://gitee.co ...

  3. java中请给出例子程序:找出两个数的最大公约数和最小公倍数

    9.2 找出12和8的最大公约数和最小公倍数.     public class Test {     public static void main(String[] args) {         ...

  4. VMware workstation16 许可证

    ZF3R0-FHED2-M80TY-8QYGC-NPKYF YF390-0HF8P-M81RQ-2DXQE-M2UT6 ZF71R-DMX85-08DQY-8YMNC-PPHV8 若资金允许,请购买正 ...

  5. Spring Boot配置文件加载顺序

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.通过spring.config.location改变配置文件的位置 二.外部配置加载顺序 1.使用命令行参数指定加 ...

  6. Alibaba Java诊断工具Arthas查看Dubbo动态代理类

    原创/朱季谦 阅读Dubbo源码过程中,会发现,Dubbo消费端在做远程调用时,默认通过 Javassist 框架为服务接口生成动态代理类,接着再去调用代理类实现远程接口调用.在阅读这部分源码时,最后 ...

  7. 学习打卡day12&构建之法阅读笔记第一篇

    今天浅读了<构建之法>的前四章,稍微有一些个人的见解与感受 第一点即是开篇提及到的算法与数据结构这门学科开设的必要,大二上学期学习了这门课程,就我个人目前接触到的层面来看,几乎可以说用不太 ...

  8. Python 一网打尽<排序算法>之先从玩转冒泡排序开始

    1. 前言 所谓排序,就是把一个数据群体按个体数据的特征按从大到小或从小到大的顺序存放. 排序在应用开发中很常见,如对商品按价格.人气.购买数量--显示. 初学编程者,刚开始接触的第一个稍微有点难理解 ...

  9. Spring 源码 (1)Spring IOC Bean 创建的整体流程

    Spring IOC 中涉及的重要接口 BeanDefinition Bean的描述信息,实现类包括 RootBeanDefinition 和 GenericBeanDefinition,Bean的描 ...

  10. [译]ng指令中的compile与link函数解析 转

    通常大家在使用ng中的指令的时候,用的链接函数最多的是link属性,下面这篇文章将告诉大家complie,pre-link,post-link的用法与区别. 原文地址 angularjs里的指令非常神 ...