jQuery (02) 重点知识点总结
jQuery
如果用户未登录,当加入购物车,会将商品相关信息存入 cookie 或者 session,这两个都是可以标识用户信息的东西
是一个 JavaScript 库,封装了常用的开发功能,和一些需要的方法,来提高开发效率。
- jQuery 2.0 以前,以跨浏览器 Web 为主要任务。
- jQuery 的级联调用(链式方法调用)。 size(),add(),not(),filter() 这四个方法返回原包装集
- .end() 返回前一个 jQuery 对象
- .andSelf() 用于合并最近的两个包装集
- .replaceAll();
- .append();
- .appendTo();
- .prepend();
- .prependTo();
- .insertBefore();
- .before();
- .after();
- .insertAfter();
- .is(); 是否包含某个元素 包装集中有一个包含,则返回 true
- .each(); 隐式调用
- jQuery 调用多对象的方法,或属性时,默认操作第一个对象。
$("ul li").text(); // 只会打印第一个 li 的文本内容
- jQuery 的独立开源组件 Sizzle ,支持CSS选择器语法以及特有的伪类插件
:header 选中标题元素
:animated 正在绘制动画效果的元素
:lang("en") lang="en" 的元素
:first
:last
:nth-child(1) 第一个元素索引是 1
:nth-last-child(1) 最后一个元素索引是 1
:parent 所有父元素 :lt(3) 在同时调用 lt 和 gt 时,正确顺序是 :lt(5):gt(3) 选中小于 5,大于 3 的 jQuery 对象
:gt(3)
:has(":checked")
:checked
:selected
:enable
:disable :input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:file
- jQuery 包装集
- 使用 jQuery(""); 这样的 CSS选择器语法 获得的一组元素
- 使用 在 jquery-1.3 新增加了 $("#curLi").closest(".curBox"); 从元素本身开始,向祖先元素找
- 获取包装集中元素的个数
$("ul li").length; $("ul li").size();
- 获取包装集中 DOM 元素(jQuery 对象转 DOM 对象)
$("table tr")[0]; $("table tr").get(0);
- 获取某元素在包装集中的索引
$("tr.current").index(); // 在同辈兄弟元素中的索引
$("#ulList li").index( $ele ); // 在包装集中的索引
- 往包装集添加元素
("table tr").add("#ulList li");
- 删除包装集中元素
("table tr").not(".lastTr");
- 过滤包装集中某些元素
("table tr").filter(".current"); // 得到 class=current 的 tr 元素 ("table tr").filter(func); // 每个元素都执行func,删除返回 false 的元素
- 获取包装集的子集
// 传入 start, end 返回元素不包括 end
$("#ulList li").slice(1, 3); // 得到索引 1 2 的 li
- 搜索包装集中的元素
$("ul").find("li.current"); // ul li.current 元素被选中 区别于
$("ul").has("li.current"); // 后代元素中有 li.current 的 ul 被选中
- 根据文本内容获取元素
$("#ulList li").contains("kjf"); // 返回 文本内容中包含 kjf 的元素
- 通过关系获取包装集
$("li.current").parent();
.parents();
.children();
.siblings();
.contents(); 获得匹配元素集合中 每个元素的子节点,包括文本和注释节点 .first();
.last();
.next();
.nextAll();
.prev();
.prevAll();
.eq();
- 用法
1. 下载 jQuery-1.12.4.js 放到 js 文件夹下面
- 官网有两个版本的 js 库
jquery-1.12.4.js // 具有代码编程规范,即代码可以看,有注释
jquery-1.12.4-min.js // 由以上 js 代码压缩,去掉了无关空格,换行,注释,变量命名更短 网页加载速度更快
2. index.html 导入 js 库
<script type="text/javascript" src="./js/jquery-1.12.4.js"></script> // HTML5 已将 JavaScript 设置为默认脚本语言,可如下编写
<script>
// js代码
</script>
3. 将 js 代码写在 DOM加载完成事件处理函数中。
$(function(){
// js 代码
});以上代码等同于
$(document).ready(function(){
// js 代码 // 此代码会在 页面 DOM 加载完成后 触发 DOMContentLoaded 事件 而执行,而不用等待图片加载完成。。。
// 可以写多个 $(function(){}); 且都会执行
// 优于 window.onload() , load事件 必须要等到页面所有资源都加载完成才会触发
// window.onload(); 如果写多个,则只会生效最后一个
}); 还等同于
$().ready(function(){
// js 代码 jQuery 默认参数是 document
}); // 一个网页的加载顺序是:
// 1. 域名加载
// 2. HTML 加载 DOM 这里加载完了就触发 DOMContentLoaded 事件
// 3. 加载 js、css
// 4. 加载图片、视频等等资源, 这里加载完了就触发 load 事件
// 用法 document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);
- jQuery 的两把利器
- jQuery 核心对象 $ jQuery
- 做为对象使用,调用 jQuery 的方法
- $.each();
- 隐式遍历数组
$.each(arr, function(index, eleVal){
console.log("arr["+index+"] : "+eleVal);
});
- $.trim();
- 去掉字符串首尾空格
$.trim(" 哈啊 "); // "哈啊"
- $.type();
- 判断数据的类型
$.type(jQuery); // "object" 证明 jQuery 也是一个对象
- $.isArray();
- 判断是否是数组
$.isArray( $("#content") ); // false 证明 jQuery 的 css选择器得到的是 类数组对象
- $.isFunction()
- 判断数据是否是函数
$.isFunction(jQuery); // true 证明 jQuery 也是一个函数
- $.ajax({url,data,type,success})
- $.each();
- 这两个是库提供给外界的 接口
- 做为对象使用,调用 jQuery 的方法
- jQuery 核心对象 $ jQuery
- 枚举对象的属性
for(var eleIndex in aObj ){
console.log(aObj[eleIndex]);
} // 或者
arr.forEach(eachValue, index, self){};
- 枚举对象的属性
- jQuery 核心函数
- jQuery();
- jQuery 提供给用户的 API 接口 有两个变量
jQuery(); //等价于
$();
- jQuery 提供给用户的 API 接口 有两个变量
- 多库共存
- 由于除了 jQuery 库,其他的库可能也使用了 $ 作为 API 接口,
- jQuery 提供了 .noConflict() 函数,释放对 $ 的所有权,还可以指定新的变量作为接口
var myJQ = jQuery.noConflict(); // 此行以下代码, myJQ(); 等同于 jQuery();
此行代码以后,$ 就可以供其他库调用了。
- 多库共存
- jQuery对象 转成 DOM 对象
- jQuery对象,使用 $("#id") 这样的选择器获取到的对象
- 为了区别于 DOM 对象,变量命名以 $ 开头
var $firstA = $("#content a:nth-child(1)");
- jQuery对象,使用 $("#id") 这样的选择器获取到的对象
- 转为 DOM 对象,
$("#content a:first")[0]; // 返回对应 DOM 对象 因为 jQuery 使用 css 选择器获取元素时,总是返回一个类数组对象,成员为获取到的一个或多个元素 // 或者
$firstA[0]; // 返回对应 DOM 对象 // 或者
$("#content a:first").get(0);
$firstA.get(0);
- 转为 DOM 对象,
- 操作 jQuery 对象 的二值属性
.prop("checked", true);
.prop("checked", false);
$("input:checked").prop("checked", false);
$("input:checked").prop("selected", false);
$("input:checked").prop("disable", false);
$("input:checked").prop("enable", false);
- 元素的 高度/宽度
// content 支持设置
$("#box").height();
$("#box").width(); // content+padding 不支持设置
$("#box").innerHeight();
$("#box").innerWidth(); // content+padding+border 不支持设置
$("#box").outerHeight(); // 如果传入 true 则获取 content + padding+border+margin
$("#box").outerWidth(true);
- 获取/设置 元素 的位置
- 相对于网页页面左上角 .offset()
- 读取位置
$("#box").offset().top;
$("#box").offset().left;
- 读取位置
- 相对于网页页面左上角 .offset()
- 设置位置
$("#box").offset({
top: 100,
left: 200
});
- 设置位置
- 相对于父元素左上角 .position()
- 读取位置
$("#box").position().top;
$("#box").position().left;
- 读取位置
- 相对于父元素左上角 .position()
- 设置位置
$("#box").position({
top: 100,
left: 200
});
- 设置位置
- 移除元素 .remove()
// <body> <div id="box"> 我是一个div </div> </body> $("#box").remove(); // <body> </body>
- 移除元素文本内容 .empty();
// <p>哈哈哈哈哈</p> $("p").empty(); // <p></p>
- 事件绑定 .on("click", func1); 与解绑 .off("click", func1);
- on 还可以用于事件委派(根据事件冒泡原理实现: 子元素的事件,会向祖先元素传递)
$("#ulList").on("click", "li", function(){
alert("I am "+ $(this).text() );
});
- jQuery 函数的 this 总是返回 DOM对象
- 如果要使用 jQuery 对象的方法,需要 $() 转换成 jQuery 对象
- jQuery 函数的 this 总是返回 DOM对象
- 事件触发 trigger
$("#box").trigger("click");
- 事件触发 trigger
- 鼠标移入/移出事件
- 只在移入绑定元素时触发,移入子元素不重复触发 (常用)
- mouseenter
- 原理是取消了事件冒泡
- 建议使用 event.stopPropagation(); 取消某个事件的冒泡。。。(IE 使用 window.event.cancelBubble() 取消事件冒泡)
- mouseleave
- mouseenter
- .hover(enter, leave);
- 其实 .hover() 函数 内部封装的是 mouseenter 和 mouseleave 事件
- 只在移入绑定元素时触发,移入子元素不重复触发 (常用)
- 在移入绑定元素时触发,移入子元素时还会触发 (先触发 out 再触发 over)
- mouseover
- mouseout
- 在移入绑定元素时触发,移入子元素时还会触发 (先触发 out 再触发 over)
- 重要事件
$("#box").click(); // 单击时 触发
$("#box").dbclick(); // 双击时 触发 $("#box").blur(); // 元素失去焦点时 触发
$("#box").focus(); // 元素获取焦点时 触发
$("#box").focusIn(); // 元素获取焦点瞬间 触发
$("#box").focusOut(); // 元素失去焦点瞬间 触发 .keypress([data], func); 没插入一个字符时 触发 .keydown([data], func); 按键按下 触发
.keyup([data], func); 按键 松开触发 $("input:text").select(); // 当文本内容被选中时 触发
$("textarea").select(); // 当文本内容被选中时 触发 $("input:text").change(); // 当值发生改变,失去焦点时 触发
$("textarea").change(); // 当值发生改变,失去焦点时 触发
$("select").change(); // 选中某选项时 触发 // 点击提交时触发
$("#form_one").submit(function(){
return false; // 阻止浏览器默认行为:阻止提交表单
}); .resize([data], func); 当调整浏览器窗口大小时 触发
- 操作 jQuery 对象的 class
- 增加
- $("#ulList li:last").addClass("current");
- 删除
- $("#ulList li:last").removeClass("current");
- 切换
- $("#ulList li:last").toggleClass("current");
- 过滤包装集
- $("#ulList li:last").hasClass("current");
- 过滤包装集
- toggle 切换函数
- 如果不传参数, 或者只传一个时间(毫秒)
- $("#box").toggle(); // 两次执行会在 show() 和 hide(); 函数之间操作 $("#box")
- $("#box").toggle(200); // 每 200ms 切换 show() 和 hide() 操作 $("#box")
- 如果传参数,传入 2 个以上的函数,点击交替触发事件,依次切换
- $("#box").toggle(chgToRed, chgToBlue, chgToBlue); // 第一次 click 执行chgToRed,第二次 click 执行chgToBlue, 第三次 click 执行chgToGreen
- 如果不传参数, 或者只传一个时间(毫秒)
- 动画函数
- 实质上 是 display:none; 的切换
- 参数可选值:
- 最后一个参数,可以传一个函数。在动画执行完毕后执行
- normal 代表 400 毫秒
- slow 代表 200 毫秒
- fast 代表 600 毫秒
- 过渡效果 'swing' 变速运动
- 过渡效果 'linear' 匀速直线运动
- 显示 show(); 隐藏 hide(); toggle();
- 淡入显示 fadeIn(); 淡出隐藏 fadeOut(); fadeToggle();
- 下滑显示 slideDown(); 上滑隐藏 slideUp(); slideToggle();
- 动画定制 :
$('#message').animate( {
left: '650px',
opacity: 0.,
backgroundColor: skyblue,
fontSize: '24px'
}, 1500, 'linear' );清除动画队列:
$("#box").stop(true, true);
// 第一个 true 清除动画队列里的动画
// 第二个 true 立刻到执行完毕状态
- 在元素之前添加内容
$("#box").before("<p>Hello World</p>");
- 在元素之后添加内容
$("#box").after("<p>Hello World</p>");
- 元素的
.text(); 文本内容
.html(); 源码内容
.value(); 值
jQuery (02) 重点知识点总结的更多相关文章
- java知识点、重点知识点
重点章节: 面对对象章节 重点知识点: Lambda表达式 数据:内存-->数据库 知识点一拦: 类.面向对象.对象.封装.继承.多态.消息.UML建模.数据类型(基本类型.引用类型).数据类型 ...
- ES6重点知识点总结(2)
ES6重点知识点总结(2) call和apply的作用是什么?区别是什么? call和apply的功能基本相同,都是实现继承或者转换对象指针的作用: 唯一不通的是前者参数是罗列出来的,后者是存到数组中 ...
- jQuery学习和知识点总结归纳
jQuery目前在Web前端开发所占的比重越来越高,在我们jQuery学习和开发的过程中都会去使用.jQuery帮我们解决了浏览器之间JS一些不兼容的地方和简化了原生JS对DOM的操作.下面把PHP程 ...
- 关于JQuery的一些知识点
1.jQuery的入口函数 1.1 语法jQuery(document).read(function(){ }); $(function(){ });// ** window.onlaod = fun ...
- [ASP.NET MVC 小牛之路]02 - C#知识点提要
本人博客已转移至:http://www.exblr.com/liam 本篇博文主要对asp.net mvc开发需要撑握的C#语言知识点进行简单回顾,尤其是C# 3.0才有的一些C#语言特性.对于正在 ...
- jQuery 重要的知识点归纳
jQuery 对象 jQuery 对象就是通过 jQuery 包装 DOM 对象后产生的对象. jQuery 对象是 jQuery 独有的. 只有 jQuery 对象才能使用 jQuery 的方法,在 ...
- 关于jQuery的小知识点
jQuery 简介 jQuery 库可以通过一行简单的标记被添加到网页中. jQuery 库 - 特性 jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML ...
- jQuery选择器部分知识点总结
一.jQuery选择器的优势 1.使用CSS选择器时,开发人员需要考虑主流浏览器是否支持某些选择器,而在jQuery中,开发人员则可以放心的使用jQuery选择器而无需考虑浏览器是否支持这些选择器. ...
- jquery的常用知识点
一.用jquery寻找元素 1.选择器 基本选择器: $("*") $("#id") 用id匹配 $(".class") 用class名匹配 ...
随机推荐
- nodejs和npm的关系【转】
node.js是javascript的一种运行环境,是对Google V8引擎进行的封装.是一个服务器端的javascript的解释器. 包含关系: nodejs中含有npm,比如说你安装好nodej ...
- JAVA实现C/S结构小程序
程序功能: 客户端向服务器发送一个本地磁盘中的文件, 服务器程序接受后保存在其他位置. 客户端实现步骤: 创建一个客户端对象Socket,构造方法中绑定服务器的IP地址 和 端口号 使用Socket对 ...
- 第二十一节:ADO层次上的海量数据处理方案(SqlBulkCopy类插入和更新)
一. 简介 1. 背景: 虽然前面EF的扩展插件Z.EntityFramework.Extensions,性能很快,而且也很方便,但是该插件要收费,使用免费版本的话,需要定期更新,如果不更新,将失效, ...
- sqlmap基础入门超详细教程
前言: 总算进入了自己喜欢的行业. 要时刻记得当初自己说过的话, 不忘初心. Come on! 资料: 感谢超哥分享的干货.. sqlmap干货点击直达 学习环境: 本次学习使用的是kali集成的s ...
- PHP数组——数组正则表达式、数组、预定义数组
正则表达式 1.替换 $s = "hello5world"; $s = preg_replace("/\d/","#",$s); echo ...
- oracle利用redo恢复
oracle媒介恢复(Media Recovery) 官方资料 https://docs.oracle.com/database/121/ADMQS/GUID-CBC5870F-2C9A-4F67-B ...
- tomcat日志格式中的含义
%a - 远程IP地址 %A - 本地IP地址 %b - 发送的字节数,不包括HTTP头,或“ - ”如果没有发送字节 %B - 发送的字节数,不包括HTTP头 %h - 远程主机名 %H - 请求协 ...
- Copley-STM32串口+CANopen实现双电机力矩同步
原来有个CANopen的主站卡,现在没了,只有单片机,用单片机来制作一个CANopen的主站卡貌似不是很难,但是需要时间.无奈仔细看了一个Copley的说明,决定采用CAN口+串口来实现之前的功能. ...
- Python-爬虫-Beautifulsoup解析
简介 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省 ...
- linux服务安装与配置(二):安装xinetd服务
linux服务安装与配置(二):安装xinetd服务 xinetd即extended internet daemon,xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器.经常用 ...