一、需求
在一个页面中有一个列表,每个列表项对应另一个页面的内容,操作当前页面的列表项,另一个页面的相应内容被删除。
二、分析
在操作页面,记录被操作的列表项,传入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>