将表排序保存在本地存储中
save table sort in local storage
我希望能够刷新页面并仍然将我的表格排序为左侧。我想用本地存储而不是jQuery插件来做到这一点。
表格排序,但我不明白为什么 localStorage 不保存上次留下的顺序。
我在 localStorage 上做错了什么?
我有我的排序表函数,它在每次排序后调用 saveLocalStorage() 函数。
function sort_book_table(tbody, col, asc) {
... sorts ...
saveLocalStorage();
}
function saveLocalStorage(){
var table_layout = $('#bookTable')[0].innerHTML;
localStorage.setItem(table_layout);
}
提前感谢您的帮助
编辑:添加了快速小提琴 https://jsfiddle.net/1k901cdr/
本地存储对象为源提供存储对象。
您错过了 localStorage.setItem(table_layout);
中的第二个参数。尝试以下代码片段,了解您在localStorage
上的所有操作。
// Setting the Value.
localStorage.setItem("keyName", "value"); // Syntax
localStorage.setItem("table_layout", table_layout); // by variable
localStorage.setItem("table_layout", "dsdssd"); // by value
// Get the value.
localStorage.getItem("table_layout");
// Clear one item.
localStorage.removeItem("table_layout");
// Clear all items.
localStorage.clear();
参考:
https://www.w3.org/TR/webstorage/#the-localstorage-attribute
https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStoragehttp://www.w3schools.com/html/html5_webstorage.asp
localStorage.setItem
需要一个键和一个值。
localStorage.setItem('foo'); // incorrect
localStorage.setItem('foo', 'bar'); // correct
您错过了键值。
localStorage.setItem('layout', table_layout);
根据Micah的回答,setItem 有两个参数,一个键和一个值。
localStorage.setItem('foo', 'bar'); // correct
但是,您似乎也试图将表的整个 HTML 保存在 localStorage 中。您应该只保存排序列和方向。下面是更新的函数,这些函数将保留排序的列和方向。
function sort_book_table(tbody, col, dir) {
... sorts ...
saveLocalStorage(col, dir);
}
function saveLocalStorage(col, dir){
localStorage.setItem('sortCol', col);
localStorage.setItem('sortDir', dir);
}
相关文章:
- 当会话存储阵列中存在大量元素时,如何从中删除元素
- 安卓phonegap应用程序与三星Galaxy设备上的SQlite和本地存储存在问题
- Azure Blob 存储 请求的资源错误中不存在访问控制允许源标头
- 将此 pdf 保存在 ionic 上的缓存/本地存储中
- 等到元素存在,循环,然后存储在变量中
- 使用 AngularJS 将数据保存在 JSON 本地存储中
- 将数据保存在 ember 简单身份验证中的浏览器本地存储中
- 检查 s3 存储桶中是否存在单个对象
- 如何擦除、清除、擦除保存在iPad主屏幕上的网络应用程序的HTML5本地存储
- javascript本地存储查找是否存在
- 在localStorage中存储HTTP Basic授权标头是否存在任何安全问题
- 是否存在一种神奇的后端服务,前端程序员可以在其中存储数据
- Lawnchair:检查存储及其文档是否存在
- extjs网格不显示预期的数据,即使存储,列存在于网格对象
- 如何比较保存在html5本地存储的jquery日期已经过去了12个小时
- 直接向s3 / client上传文件.使用这种方法在s3存储桶中存储未使用的文件是否存在问题?
- 将具有唯一id的对象集合存储为以id作为键的关联数组,而不是作为常规数组,是否存在缺陷?
- 复选框和
- 登录Facebook,获取数据,如果数据不存在,则存储在MySQL数据库中
- 使用HTML5 web存储将用户输入保存在HTML页面上