zoukankan      html  css  js  c++  java
  • localStorage实现不同页面间的数据传递

    一、需求

    在一个页面中有一个列表,每个列表项对应另一个页面的内容,操作当前页面的列表项,另一个页面的相应内容被删除。

    二、分析

    在操作页面,记录被操作的列表项,传入localStorage中。在内容页面,取出localStorage中的数据,然后根据操作页面传递过来的值进行删除操作

    <!--操作页面-->
    
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
    
        </head>
        <body>
         <li key="l1">1</li>
         <li key="l2">2</li>
         <li key="l3">3</li>
         <a href="http://localhost:8080/forll/list.html">返回list</a>
            
    
            <script>
                var lis = document.querySelectorAll('li');
                
            var arr =    JSON.parse(localStorage.getItem('keys')) || [] ;
                
                for(var i = 0 ;i<lis.length;i++){
                    var li = lis[i];
                    li.onclick = function(){
                        for(var i = 0 ; i<arr.length;i++){
                            if(this.getAttribute('key') == arr[i] ){
                                return;
                                    
                            }
                            
                        }
                        arr.push(this.getAttribute('key'));
                                localStorage.setItem('keys',JSON.stringify(arr));
                        
                    }
                }
            </script>
        </body>
    </html>
    
    
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------
    <!--要删除的内容页面-->
    
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
        </head>
        <body>
        <ul>
            <li key="l1">1</li>
            <li key="l2" >2</li>
            <li key="l3" >3</li>
            <li key="l4">4</li>
            <li key="l5">5</li>
        </ul>
        <a href="./delete.html">返回delete</a>
        <script>
            var lis = document.getElementsByTagName('li');
            function deleteChoosedLi(keys){
                for(var i = 0 ; i < lis.length ;i++){
                    for(var j = 0 ; j < keys.length ;j++){
                        if(lis[i].getAttribute('key') == keys[j]){
                        lis[i].parentNode.removeChild(lis[i]);
                        
                    }
                    }
                    
                }
            }
            var keys = JSON.parse(localStorage.getItem('keys'));
            deleteChoosedLi(keys);
        </script>
        </body>
    </html>
  • 相关阅读:
    24点游戏算法
    汉诺塔算法
    台阶算法
    质因数分解算法
    全排列递归算法
    DFS 深度优先搜索例题
    容器
    数细胞
    C++栈和队列
    C++STL中vector容器 begin()与end()函数、front()与back()的用法
  • 原文地址:https://www.cnblogs.com/justinwxt/p/7080061.html
Copyright © 2011-2022 走看看