javascript - 将列表中的值绑定到变量以进行 api 查询
问题描述
有一个带有随机笑话的按钮,根据类别显示笑话。通过API请求获取类别列表https://api.chucknorris.io/jokes/categories
笑话输出在https://api.chucknorris.io/jokes/random?category={category}
问题:如何{category}
根据下面的代码在点击分类时获取具体名称(点击分类时,页面不应该更新)?
function foo() {
let xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.chucknorris.io/jokes/categories', false);
xhr.send();
if (xhr.status !== 200) {
console.log(xhr.status + ` ` + xhr.statusText);
}
let dataObject = JSON.parse(xhr.responseText);
console.log(dataObject);
let menu = document.getElementById('menu');
dataObject.forEach(item => {
let div = document.createElement("div");
div.innerHTML = "<a href='" + item + "'>" + item + "</a>";
div.classList.add("div-added");
div.id = 'items';
menu.append(div);
});
let currentCategory;
let items = document.querySelectorAll("#items");
for (let i = 0; i < items.length; i++) {
items[i].addEventListener('click', function(e) {
e.preventDefault();
console.log(items[i]);
return false;
});
}
}
解决方案
函数 foo() {
let dataObject = getRemoteData('https://api.chucknorris.io/jokes/categories');
console.log(dataObject);
let menu = document.getElementById('menu');
dataObject.forEach(item => {
let div = document.createElement("div");
div.innerHTML = "<a href='javascript:void(0)' onclick=getJoke('" + item + "')>" + item + "</a>";
div.classList.add("div-added");
div.id = 'items';
menu.append(div);
});
}
函数getJoke(令牌){
let jokeData = getRemoteData("https://api.chucknorris.io/jokes/random?category=" + token);
// Write code to use that joke data
console.log(jokeData);
}
函数 getRemoteData(url) {
let xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.send();
if (xhr.status !== 200) {
console.log(xhr.status + ` ` + xhr.statusText);
}
return JSON.parse(xhr.responseText);
}
推荐阅读
- nuxt.js - 在nuxt js中构建服务器mod中的wProxy问题url
- python - 如何在熊猫中添加基于选定行过滤器的列?
- python-3.x - 如何自动设置 MDCard 高度
- php - 遇到错误并且无法解决:count(): Argument #1 ($value) must be of type Countable|array, string given
- javascript - 使用 .htdacess 更改页面名称时 PHP GET 变量不起作用
- python - Python/Flask 初学者:如何格式化 db 值?
- typescript - Nextjs 如何在传递时声明 prop 类型?
- vba - Vba 通过使用 seach 函数找到“-”并仅提取数字修复错误
- python-3.x - 从列表中提取值,该列表落在熊猫数据框指定的间隔内
- node.js - 表达静态行为