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. 前端webpack workflow(二)——Webpack基本使用

    作者:Jogis原文链接:https://github.com/yesvods/Blog/issues/3转载请注明原文链接以及作者信息 前一篇文章介绍了webpack以及安装方法,这次将会介绍web ...

  2. 前端架构gulp与webpack(知识点整理)

    一 概念介绍 gulp 是 task runner,Webpack 是 module bundler.可以这么说, Webpack 和 gulp 本身都有 95% 的功能是不能被对方替代,或者直接说和 ...

  3. JavaScript 工作原理之三-内存管理及如何处理 4 类常见的内存泄漏问题(译)

    原文请查阅这里,本文有进行删减,文后增了些经验总结. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第三章. 我们将会讨论日常使用中另一个被开发者越来越忽略的 ...

  4. python-计算素数和

    本题要求计算输入两个正整数x,y(x<=y,包括x,y)素数和.函数isPrime用以判断一个数是否素数,primeSum函数返回素数和. 输入格式: 输入两个整数. 输出格式: [m-n]间的 ...

  5. 解决vue安装时出现vue --version或vue不是内部命令的问题

    1. 试图全局配置 vue 的环境变量,找到 vue.cmd 的路径,然后进行配置. 问题:在文件搜索中,没有找到 vue.cmd,失败. 1.npm i npm -g 全局 update 了 npm ...

  6. linux中rsync备份文件

    linux中rsync备份文件 备份文件的方式 备份方式: cp : 本机复制 scp: 远程复制 推(本地上传到远程服务器): scp 1.txt root@ip:[路径] [root@m01 ~] ...

  7. 7.Docker容器使用辅助工具汇总

    原文地址: 点击直达 more information: https://docs.docker.com/engine/security/security/#docker-daemon-attack- ...

  8. 记一次MySql重置root密码无效

    说起这个事情吧也相对来说比较尴尬,对于一个技术来说忘记密码然后找回密码都是相当简单的一个事情,但是在生产环境中没有保存记录只能是自己的失职,尴尬就尴尬在明明重置成功了却没有生效,弄得好几个工程师在哪里 ...

  9. Zookeeper启动问题记录——ZooKeeper audit is enabled.

    问题原因是Zookeeper的日志服务默认关闭,在zoo.cfg文件中添加 audit.enable=true 保存后重启服务就能够正常启动. 另外,这个只影响Zookeeper的日志记录,不影响其他 ...

  10. JavaWeb学习day8-Response排错

    用字符串接收送前端返回的数据并输出 1 req.setCharacterEncoding("UTF-8"); 2 resp.setCharacterEncoding("U ...