如何在下次搜索时删除以前搜索过的项目

Posted

技术标签:

【中文标题】如何在下次搜索时删除以前搜索过的项目【英文标题】:How can i remove previous searched items on next search 【发布时间】:2021-08-05 23:17:07 【问题描述】:

从用户搜索的内容开始获取所有电影的图像只是想在每次下一次搜索时删除以前的图像我该怎么做

<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport"     content="width=device-width, initial-  scale=1.0">
<title>TV Show Search</title>

<script     src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

</head>

<body>
<h1>TV Show Search</h1>
<form id="searchForm">
    <input type="text" placeholder="TV Show Title" name="query">
    <button>Search</button>
</form>
<script src="app.js"></script>
</body>

</html>

javascript 从这里开始

const form =   document.querySelector('#searchForm');

在表单上添加了一个事件监听器。

form.addEventListener('submit', async     function (e) 
e.preventDefault();
const searchTerm =     form.elements.query.value;
const config =  params:  q:    searchTerm  
var res = await     axios.get(`http://api.tvmaze.com/search/shows`, config);

从 api 获取结果

makeImages(res.data)
form.elements.query.value = '';

)



const makeImages = (shows) => 
for (let result of shows) 
    if (result.show.image) 
        const img =    document.createElement('IMG');
           img.src=result.show.image.medium;
        document.body.append(img)
    


如何在下次搜索时删除以前的图像

【问题讨论】:

【参考方案1】:

最简单的方法可能是删除所有子元素,即清除元素的innerHtml。为避免弄乱页面的其余部分,请考虑将您的图片移至单独的&lt;div&gt;

html:

<!-- ... -->
</form>
<div id="resultImages"></div>
<script src="app.js"></script>
<!-- ... -->

js:

const resultImagesDiv = document.getElementById('resultImages');

const makeImages = (shows) => 
  resultImagesDiv.innerHtml = ''; // Clear all previous images
  for (let result of shows) 
    if (result.show.image) 
      const img = document.createElement("img");
      img.src = result.show.image.medium;
      resultImagesDiv.appendChild(img);
    
  
;

有关如何删除 Html 元素的所有子元素的更多详细信息,请参阅this question。

【讨论】:

以上是关于如何在下次搜索时删除以前搜索过的项目的主要内容,如果未能解决你的问题,请参考以下文章

如何删除全部历史记录内容?

如何使用按钮显示“搜索显示控制器”

使用 UISearchController 时如何删除排序/过滤的项目

如何在微信小程序里面搜索小程序

在搜索栏中禁用以前搜索过的词条建议

VS2008中要把以前做过的项目记录全部删除怎么操作?