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. C#复杂XML反序列化为实体对象两种方式

    前言 今天主要讲的是如何把通过接口获取到的Xml数据转换成(反序列化)我们想要的实体对象,当然Xml反序列化和Json反序列化的方式基本上都是大同小异.都是我们事先定义好对应的对应的Xml实体模型,不 ...

  2. Windows CMD常用命令集合

    CMD命令: 开始->运行->键入cmd或command(在命令行里可以看到系统版本.文件系统版本) chcp 修改默认字符集chcp 936默认中文chcp 65001 1. appwi ...

  3. 小程序checkbox调整大小(checkbox样式修改)

    .skyCheckbox{ transform: scale(0.7,0.7); -webkit-transform: scale(0.7,0.7); } <label class=" ...

  4. ajax自己封装

    function paramsSeralize(obj){ if(!obj || typeof !== 'object') return obj; let res = ''; for (const k ...

  5. IDEA小技巧:Debug条件断点

    今天给大家分享一个IDEA调试过程中的一个小技巧. 先来说说场景,你有没有碰到类似的情况,一个循环结构里,中间某一个情况可能会出错.比如下面的代码结果中,可能执行到第27次的时候,会出现问题. for ...

  6. JavaScript学习总结7-BOM

    今天学习了BOM模型,可以利用其来获得屏幕数据,网页历史,以及网页location等数据

  7. uniapp报错:Browserslist: caniuse-lite is outdated. Please run next command `npm update`

    uni-app的编译器是基于npm的,依赖了众多包括mpvue.webpack在内的npm库,这些库又引用了一个三方库caniuser-lite.caniuser-lite这个库的代码里有个浏览器兼容 ...

  8. node.js - 路由、中间件、mysql

    这几天天天搞到这么晚,我看今天的内容看起不多啊,不知道为什么学着学着就到了这么晚.今天的内容还是有点多哈,有点自我矛盾了,再次一一道来. 1. 首先今天先看到路由的概念,什么叫做路由? 路由就是映射关 ...

  9. 小米路由器3G R3G 刷入Breed和OpenWrt 20.02.2 的记录

    小米 R3G 参数 Architecture: MIPS Vendor: Mediatek Bootloader: U-Boot System-On-Chip: MT7621 family CPU/S ...

  10. 解析数仓OLAP函数:ROLLUP、CUBE、GROUPING SETS

    摘要:GaussDB(DWS) ROLLUP,CUBE,GROUPING SETS等OLAP函数的原理解析. 本文分享自华为云社区<GaussDB(DWS) OLAP函数浅析>,作者: D ...