fetch api 不恢复搜索值
fetch api not reinstating search values
大家好,似乎没有人能够指导我解决我遇到的获取问题。
我正在使用 google api 建立一个图书馆,但问题是,如果我搜索“Harry”(使用 Harry 进行解释)它确实会显示一些书,但是如果我再次搜索让我说“Potter”,那么两个搜索请求都会堆积起来,我只需要清除第一个搜索结果,然后显示第二个搜索结果,而不是我正在填写搜索书籍模板并且对如何解决这个问题
first search
second search
哈巴狗:
extends ./index.pug
block contentt
#categContainer
h3 Elige a continuación unas de las categorias para poder filtrar tu busqueda adecuadamente
ul#categories
button.btn.btn-autor.btn-outline-info.categories(
type="button",
onclick="agregarAutor()"
) Autor
button.btn.btn-libro.btn-outline-info.categories(
type="button",
onclick="agregarLibro()"
) Libros
button.btn.btn-revista.btn-outline-info.categories(
type="button",
onclick="agregarCategoria()"
) Categoria
button.btn.btn-titulo.btn-outline-info.categories(
type="button",
onclick="agregarTitulo()"
) titulo
button.btn.btn-editorial.btn-outline-info.categories(
type="button",
onclick="agregarEditorial() "
) Casa editora
button.btn.btn-gratis.btn-outline-info.categories(
type="button",
onclick="agregarFree()"
) Libros gratuitos
button.btn.btn-pagas.btn-outline-info.categories(
type="button",
onclick="agregarPaid()"
) Libros pagos
div
label(for="category_type")
input.input(type="text", name="category_type")
button.btn.btn-outline-primary.choice(onclick="restartItems()") Elige tu categoria
#category_reveil
JS
var acumulado = [];
var input_el = document.querySelector(".input");
valor = input_el;
valor.innerHTML = "";
var autorcito = document.querySelector(".btn-autor");
var librito = document.querySelector(".btn-libro");
var revistica = document.querySelector(".btn-revista");
var titulacho = document.querySelector(".btn-titulo");
var editoriale = document.querySelector(".btn-editorial");
var free = document.querySelector(".btn-gratis");
var paid = document.querySelector(".btn-pagas");
function agregarAutor() {
acumulado.push("Autor");
console.log(acumulado);
autorcito.disabled = true;
}
function agregarLibro() {
acumulado.push("Libro");
console.log(acumulado);
librito.disabled = true;
}
function agregarCategoria() {
acumulado.push("Categoria");
console.log(acumulado);
revistica.disabled = true;
}
function agregarTitulo() {
acumulado.push("Titulo");
console.log(acumulado);
titulacho.disabled = true;
}
function agregarEditorial() {
acumulado.push("Editorial");
console.log(acumulado);
editoriale.disabled = true;
}
function agregarFree() {
acumulado.push("Gratis");
console.log(acumulado);
free.disabled = true;
}
function agregarPaid() {
acumulado.push("Pagos");
console.log(acumulado);
paid.disabled = true;
}
function restartItems() {
autorcito.disabled = false;
librito.disabled = false;
revistica.disabled = false;
titulacho.disabled = false;
editoriale.disabled = false;
free.disabled = false;
paid.disabled = false;
acumulado = [];
console.log(acumulado);
fetch(`https://www.googleapis.com/books/v1/volumes?q=${valor}`)
.then((data) => {
return data.json();
})
.then((response) => {
for (var i = 0; i < response.items.length; i++) {
var item = response.items[i].volumeInfo.title;
var new_item_list = document.createElement("a");
var new_item = document.createElement("div").appendChild(new_item_list);
new_item.classList.add("div_categ_style");
var item = response.items[i];
document
.querySelector("#category_reveil")
.appendChild(new_item).innerHTML += "<br>" + item.volumeInfo.title;
}
});
}
i just need the first search to flush out and the second search result to show up instead I am filling up the SEARCH BOOKS TEMPLATE
没有清空内容的地方...所以它肯定会堆积起来。我还稍微清理了有关元素创建的逻辑。请参阅代码中的注释。
fetch(`https://www.googleapis.com/books/v1/volumes?q=${valor}`)
.then((data) => {
return data.json();
})
.then((response) => {
// Get #category_reveil
let category_reveil = document.querySelector("#category_reveil")
// Clear #category_reveil
category_reveil.innerHTML = ""
// Process the response
response.items.forEach(item => {
// Create the anchor and its text
let a = document.createElement("a");
a.innerText = item.volumeInfo.title;
// Create the div and its class
let div = document.createElement("div");
div.classList.add("div_categ_style");
// Append a to div
div.appendChild(a)
// Append div to #category_reveil
category_reveil.appendChild(div)
}
});
大家好,似乎没有人能够指导我解决我遇到的获取问题。
我正在使用 google api 建立一个图书馆,但问题是,如果我搜索“Harry”(使用 Harry 进行解释)它确实会显示一些书,但是如果我再次搜索让我说“Potter”,那么两个搜索请求都会堆积起来,我只需要清除第一个搜索结果,然后显示第二个搜索结果,而不是我正在填写搜索书籍模板并且对如何解决这个问题
first search
second search
哈巴狗:
extends ./index.pug
block contentt
#categContainer
h3 Elige a continuación unas de las categorias para poder filtrar tu busqueda adecuadamente
ul#categories
button.btn.btn-autor.btn-outline-info.categories(
type="button",
onclick="agregarAutor()"
) Autor
button.btn.btn-libro.btn-outline-info.categories(
type="button",
onclick="agregarLibro()"
) Libros
button.btn.btn-revista.btn-outline-info.categories(
type="button",
onclick="agregarCategoria()"
) Categoria
button.btn.btn-titulo.btn-outline-info.categories(
type="button",
onclick="agregarTitulo()"
) titulo
button.btn.btn-editorial.btn-outline-info.categories(
type="button",
onclick="agregarEditorial() "
) Casa editora
button.btn.btn-gratis.btn-outline-info.categories(
type="button",
onclick="agregarFree()"
) Libros gratuitos
button.btn.btn-pagas.btn-outline-info.categories(
type="button",
onclick="agregarPaid()"
) Libros pagos
div
label(for="category_type")
input.input(type="text", name="category_type")
button.btn.btn-outline-primary.choice(onclick="restartItems()") Elige tu categoria
#category_reveil
JS
var acumulado = [];
var input_el = document.querySelector(".input");
valor = input_el;
valor.innerHTML = "";
var autorcito = document.querySelector(".btn-autor");
var librito = document.querySelector(".btn-libro");
var revistica = document.querySelector(".btn-revista");
var titulacho = document.querySelector(".btn-titulo");
var editoriale = document.querySelector(".btn-editorial");
var free = document.querySelector(".btn-gratis");
var paid = document.querySelector(".btn-pagas");
function agregarAutor() {
acumulado.push("Autor");
console.log(acumulado);
autorcito.disabled = true;
}
function agregarLibro() {
acumulado.push("Libro");
console.log(acumulado);
librito.disabled = true;
}
function agregarCategoria() {
acumulado.push("Categoria");
console.log(acumulado);
revistica.disabled = true;
}
function agregarTitulo() {
acumulado.push("Titulo");
console.log(acumulado);
titulacho.disabled = true;
}
function agregarEditorial() {
acumulado.push("Editorial");
console.log(acumulado);
editoriale.disabled = true;
}
function agregarFree() {
acumulado.push("Gratis");
console.log(acumulado);
free.disabled = true;
}
function agregarPaid() {
acumulado.push("Pagos");
console.log(acumulado);
paid.disabled = true;
}
function restartItems() {
autorcito.disabled = false;
librito.disabled = false;
revistica.disabled = false;
titulacho.disabled = false;
editoriale.disabled = false;
free.disabled = false;
paid.disabled = false;
acumulado = [];
console.log(acumulado);
fetch(`https://www.googleapis.com/books/v1/volumes?q=${valor}`)
.then((data) => {
return data.json();
})
.then((response) => {
for (var i = 0; i < response.items.length; i++) {
var item = response.items[i].volumeInfo.title;
var new_item_list = document.createElement("a");
var new_item = document.createElement("div").appendChild(new_item_list);
new_item.classList.add("div_categ_style");
var item = response.items[i];
document
.querySelector("#category_reveil")
.appendChild(new_item).innerHTML += "<br>" + item.volumeInfo.title;
}
});
}
i just need the first search to flush out and the second search result to show up instead I am filling up the SEARCH BOOKS TEMPLATE
没有清空内容的地方...所以它肯定会堆积起来。我还稍微清理了有关元素创建的逻辑。请参阅代码中的注释。
fetch(`https://www.googleapis.com/books/v1/volumes?q=${valor}`)
.then((data) => {
return data.json();
})
.then((response) => {
// Get #category_reveil
let category_reveil = document.querySelector("#category_reveil")
// Clear #category_reveil
category_reveil.innerHTML = ""
// Process the response
response.items.forEach(item => {
// Create the anchor and its text
let a = document.createElement("a");
a.innerText = item.volumeInfo.title;
// Create the div and its class
let div = document.createElement("div");
div.classList.add("div_categ_style");
// Append a to div
div.appendChild(a)
// Append div to #category_reveil
category_reveil.appendChild(div)
}
});