目录
jQuery 其他方法
1. jQuery 拷贝对象 $.extend()方法
2. jQuery 多库共存
问题概述:
客观需求:
jQuery 解决方案:(两种方式)
3. jQuery 插件
jQuery 插件常用的网站:
jQuery 插件使用步骤:
jQuery 插件演示:
bootstrap JS 插件:
案例:toDoList !!!!!!重要案例
疑问!!!学习:localStorage的存放和取值和JSON
1.localStorage的存储对象方法
2.JSON
案例分析:
案例:toDoList 按下回车 把新数据 添加到 本地存储 里面
案例:toDoList 本地存储数据渲染加载到页面
案例:toDoList 删除操作
案例:toDoList 正在进行 和 已完成选项操作
案例:toDoList 统计正在进行个数和已经完成个数
如果想要把某个对象拷贝(合并)(复制) 给另外一个对象使用,此时可以使用 $.extend() 方法
语法:
$.extend([deep], target, object1, [objectN])
$(function () {
// var targetObj = {};
// var obj = {
// id: 1,
// name: "andy"
// }
// // $.extend(target, obj);
// $.extend(targetObj, obj);
// console.log(targetObj);
// var targetObj = {
// id: 0
// };
// var obj = {
// id: 1,
// name: "andy"
// }
// // $.extend(target, obj);
// $.extend(targetObj, obj);
// console.log(targetObj); // {id: 1, name: "andy"} id为1 会覆盖targetObj里面原来的数据
var targetObj = {
id: 0,
msg: {
sex: "女"
}
};
var obj = {
id: 1,
name: "andy",
msg: { // 这里的msg 即复杂数据类型(对象)
age: 19
}
}
// // $.extend(target, obj);
// $.extend(targetObj, obj);
// console.log(targetObj); // {id: 1, name: 'andy', msg: {age: 20}} id为1 会覆盖targetObj里面原来的数据
// // 1. 浅拷贝 把原来对象里面的复杂数据类型 地址 拷贝给目标对象
// targetObj.msg.age = 20;
// console.log(obj); // {id: 1, name: 'andy', msg: {age: 20}}
// console.log(targetObj); // {id: 1, name: 'andy', msg: {age: 20}}
// 2. 深拷贝 把里面的数据完全复制一份给目标对象,如果里面有不冲突的属性,会合并到一起
$.extend(true, targetObj, obj);
// console.log(targetObj);
targetObj.msg.age = 20;
console.log(obj); // {id: 1, msg: {age: 19}, name: 'andy'}
console.log(targetObj); // {id: 1, msg: {sex: '女', age: 20}, name: 'andy'}
})
jQuery使用$作为标示符,随着jQuery的流行,其他 js 库也会用这$作为标识符, 这样一起使用会引起冲突。
需要一个解决方案,让jQuery 和其他的js库不存在冲突,可以同时存在,这就叫做多库共存。
Document
jQuery 功能比较有限,想要更复杂的特效效果,可以借助于 jQuery 插件完成。
注意: 这些插件也是依赖于jQuery来完成的,所以必须要先引入jQuery文件,因此也称为 jQuery 插件。
1. 瀑布流 (3.4.9素材-08)
2. 图片懒加载(图片使用延迟加载在可提高网页下载速度。它也能帮助减轻服务器负载)
当我们页面滑动到可视区域,再显示图片。
我们使用jquery 插件库 EasyLazyload。 注意,此时的js引入文件和js调用必须写到 DOM元素(图片)最后面
3. 全屏滚动(fullpage.js)
全屏滚动 gitHub:http:// https://github.com/alvarotrigo/fullPage.js
全屏滚动 中文翻译网站: http://www.dowebok.com/demo/2014/77/
bootstrap 框架也是依赖于 jQuery 开发的,因此里面的 js插件使用 ,也必须引入jQuery 文件。
(3.4.9素材——13 toDoList)
① 文本框里面输入内容,按下回车,就可以生成待办事项。
② 点击待办事项复选框,就可以把当前数据添加到已完成事项里面。
③ 点击已完成事项复选框,就可以把当前数据添加到待办事项里面。
④ 但是本页面内容刷新页面不会丢失。
getItem(keyname) | 返回指定键的值 |
setItem(keyname, value) | 添加键和值,如果对应的值存在,则更新该键对应的值。 |
removeItem(keyname) | 移除键 |
保存数据语法:
localStorage.setItem("key", "value");
读取数据语法:
var lastname = localStorage.getItem("key");
删除数据语法:
localStorage.removeItem("key");
Web 存储 API 提供了 sessionStorage (会话存储) 和 localStorage(本地存储)两个存储对象来对网页的数据进行添加、删除、修改、查询操作。
localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。
sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
JSON格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式
JSON对象是JavaScript的原生对象,用来处理JSON格式数据.它有如下两个静态方法:
函数 | 描述 |
---|---|
JSON.parse() | 用于将一个 JSON 字符串转换为 JavaScript 对象。 |
JSON.stringify() | 用于将 JavaScript 值转换为 JSON 字符串。 |
(3.4.9素材——13-todolist——本地存储的数据.html)
var todolist = [{
title: '我今天吃八个馒头',
done: false
}, {
title: '我今天学习jq',
done: false
},];
// localStorage.setItem("todo", todolist);
// (在“应用程序”里面) 密钥:todo 值:[object Object],[object Object]
// 1.本地存储里面 只能 存储 字符串 的数据格式 把我们的 数组对象 转换为 字符串格式 通过 JSON.stringify()
localStorage.setItem("todo", JSON.stringify(todolist));
// 在“应用程序”里面) 密钥:todo 值:[{"title":"我今天吃八个馒头","done":false},{"title":"我今天学习jq","done":false}]
var data = localStorage.getItem("todo");
// console.log(typeof data); // string
// console.log(data[0].title); // undefined 因为data是字符串,没有title属性
// 2. 获取 本地存储的数据 我们需要把里面的字符串数据转换为 对象格式 JSON.parse()
data = JSON.parse(data);
console.log(data); // [{…}, {…}]
console.log(data[0].title); // 我今天吃八个馒头