在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ localStorage存DOM元素對(duì)象應(yīng)該怎么存?

localStorage存DOM元素對(duì)象應(yīng)該怎么存?

我想用localStorage存一下一堆li的內(nèi)容 但是不管怎么存取出來的值有會(huì)有問題

<div id="dd1" class="parent-box">
    <button class="editOrder ddd" data-for="#dd1">編輯順序</button>
    <button id="save" onclick="save1()">保存</button>
    <ul class="list ee">
        <li>01<p>1</p></li>
        <li>02<p>1</p></li>
        <li>03<p>1</p></li>
        <li>04<p>1</p></li>
        <li>05<p>1</p></li>
        <li>06<p>1</p></li>
        <li>07<p>1</p></li>
        <li>08<p>1</p></li>
        <li>09<p>1</p></li>
        <li>10<p>1</p></li>
    </ul>
</div>

<script>
function save1(){
  var save =  document.getElementById("dd1").querySelectorAll("li")
  save = Array.prototype.slice.call(save)
   for(var i=0;i<save.length;i++){
    for(var j = i + 1;j<save.length;j++){
      var savei =  parseInt(save[i].getAttribute("data-top"))
        var savej =  parseInt(save[j].getAttribute("data-top"))
        if(savei>savej){
            var tmp = save[i];
            save[i] = save[j];
            save[j] = tmp;
                        console.log(savej)
        }
     }
   }
// console.log(JSON.stringify(save))
localStorage.setItem('key',save);
 } 
//這個(gè)是存儲(chǔ)   data-top是我排序用的 不用理會(huì) 

             var read=localStorage.getItem('key');
             document.getElementById("save").innerHTML=read
//這個(gè)是取值  
</script>

但是這么取的話會(huì)返回
[object HTMLLIElement],[object HTMLLIElement],[object HTMLLIElement],[object HTMLLIElement],[object HTMLLIElement],[object HTMLLIElement],[object HTMLLIElement],[object HTMLLIElement],[object HTMLLIElement],[object HTMLLIElement]
如果用
localStorage.setItem('key',JSON.stringify(save));

var read=JSON.parse(localStorage.getItem('key'));
返回的就是
[object Object],......
這個(gè)應(yīng)該怎么存和取

回答
編輯回答
乞許

localStorage 只能保存文本內(nèi)容,對(duì)于一個(gè) DOM 對(duì)象來說如果需要保存則要進(jìn)序列化處理,而不能直接扔到 localStorage 中,比如可以通過 outerHTML 來進(jìn)行序列化操作:

localStorage.setItem('key', liEl.outerHTML)

更推薦你把需要的數(shù)據(jù)進(jìn)行提取,只存儲(chǔ)一個(gè)更簡單的數(shù)據(jù)結(jié)構(gòu),這種做法更符合現(xiàn)代前端開發(fā)的思想。

2017年2月28日 04:44
編輯回答
神經(jīng)質(zhì)

localStorage.setItem('key',JSON.stryingfy(save));
只能村字符串(還有就是本地存儲(chǔ)做這些事情有點(diǎn)浪費(fèi)啊),你可以把數(shù)據(jù)存進(jìn)去,再存?zhèn)€標(biāo)識(shí),自己去解析

2017年7月12日 16:43