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>
原文地址:https://www.cnblogs.com/justinwxt/p/7080061.html