在本地存储中保存表格排序

时间:2016-01-31 00:38:34

标签: javascript jquery

我希望能够刷新页面并让我的表格仍然排在左边。我想用本地存储而不是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/

4 个答案:

答案 0 :(得分:2)

localStorage.setItem需要一个键和一个值。

localStorage.setItem('foo'); // incorrect
localStorage.setItem('foo', 'bar'); // correct

答案 1 :(得分:1)

  

localStorage对象为原点提供存储对象。

您错过了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/LocalStorage
http://www.w3schools.com/html/html5_webstorage.asp

答案 2 :(得分:0)

你错过了关键值。

localStorage.setItem('layout', table_layout);

答案 3 :(得分:0)

根据Micah的回答,setItem接受两个参数,一个键和一个值。

ChildForm Y = new ChildForm(); Y.MdiParent = this //X is the parent form Y.Show();

但是,您似乎也试图在localStorage中保存表的整个HTML。您应该只保存排序列和方向。以下是更新的函数,这些函数将保留列的排列和方向。

localStorage.setItem('foo', 'bar'); // correct