功能是点击删除按钮删除当前按钮的值localStorage也跟着删除对应值,我采用的是splice来实现,但是存在问题是这个方法在删除完最后一个值后,添加一个空值进去。怎么防止添加空值进去。

功能是点击删除按钮删除当前按钮的值localStorage也跟着删除对应值,我采用的是splice来实现,但是存在问题是这个方法在删除完最后一个值后,添加一个空值进去。怎么防止添加空值进去。

img

img


ShowHistory.onclick = function(d){
    if(d.target.className == 'SearchiconDelBin'){
        var DelSearch = document.getElementsByClassName('SearchHiy_font');
        let localDel = JSON.parse(localStorage.getItem('SearchInputValue'));
        localDel.splice(DelSearch,1);
        localStorage.setItem('SearchInputValue',JSON.stringify(localDel));
        location.reload();
    };
};

inputRecommendation.onclick = function(shwHir){
SearchInput.focus();
shwHir.cancelBubble = true;
let locaShow = JSON.parse(localStorage.getItem('SearchInputValue')) || [];
if(localStorage.getItem('SearchInputValue')!== null){
sh_for_rmd_rods.style.display = 'block';
}else{
sh_for_rmd_rods.style.display = '';
};
let Showhtml = '';
for(let i = 0; i < locaShow.length; i++){
Showhtml += <li class='SearchHiy_font'data-key='SearchInputValue' data-index=${i}><span class="Search_font">${locaShow[i]}</span><span class='SearchiconDelBin'id='delhiy' data-index=${i} data-value=${locaShow[i]}>删除</span></li>;
ShowHistory.innerHTML = Showhtml;
};
};
ShowHistory.onclick = function(d){/ul事件委派给删除按钮执行,删除按钮自定义data-自定义值 如(data-index=数字好识别)/
if(d.target.className == 'SearchiconDelBin'){/绑定按钮实现事件委托/
let localDel = JSON.parse(localStorage.getItem('SearchInputValue')) || [];/获取localStorage的本地数据/
var DelSearch = d.target.dataset.index;//获取data-index
localDel.splice(DelSearch,1);//通过splice完成data-index的删除指定数值
localStorage.setItem('SearchInputValue',JSON.stringify(localDel));//将splice改变的值保存起来是为了实现删除的功能
location.reload();//每点击一次删除按钮刷新一次页面加载新的值
};
};

那就 发现 有空值就过滤掉