Javascript 如何将连接按钮值添加到api中
因此,我正在制作一个假日搜索“应用程序”,我希望有一些按钮,当有人点击他们国家的名称时,它会将国家的值输入api字符串 我所做的是循环所有按钮,并将目标值保存到一个变量,然后将该变量连接到api中。问题是,当我在控制台中查看获取的api时,国家代码应该是“未定义”的 我有点搞不懂为什么,如果你找到了解决办法,请解释一下Javascript 如何将连接按钮值添加到api中,javascript,dom,Javascript,Dom,因此,我正在制作一个假日搜索“应用程序”,我希望有一些按钮,当有人点击他们国家的名称时,它会将国家的值输入api字符串 我所做的是循环所有按钮,并将目标值保存到一个变量,然后将该变量连接到api中。问题是,当我在控制台中查看获取的api时,国家代码应该是“未定义”的 我有点搞不懂为什么,如果你找到了解决办法,请解释一下 let countrySelect = document.getElementById('country-select'); let holidayName = docu
let countrySelect = document.getElementById('country-select');
let holidayName = document.getElementById('holiday-name');
let holidayDesc = document.getElementById('holiday-desc');
let holidayDate = document.getElementById('holiday-date');
let holidayType = document.getElementById('holiday-type');
let info = document.querySelector('.cell');
let buttonValue;
// get button values
const button = document.querySelectorAll("button").forEach(
button => button.addEventListener('click', function(e) {
buttonValue = e.target.value;
console.log(buttonValue)
})
);
// api url
const api = `https://calendarific.com/api/v2/holidays?&api_key=<api key>&country=${buttonValue}&year=2020`;
// When the button is clicked fetch results
countrySelect.addEventListener('click', function() {
fetch(api)
.then(res => res.json())
.then(data => {
var apiResponse = data.response;
console.log(apiResponse);
}, networkError => {
alert(networkError)
})
})
let countrySelect=document.getElementById('country-select');
让holidayName=document.getElementById('holiday-name');
让holidayDesc=document.getElementById('holiday-desc');
让holidayDate=document.getElementById('holiday-date');
让holidayType=document.getElementById('holiday-type');
let info=document.querySelector('.cell');
让按钮有价值;
//获取按钮值
const button=document.queryselectoral(“按钮”).forEach(
button=>button.addEventListener('click',函数(e){
按钮值=e.target.value;
console.log(按钮值)
})
);
//api url
常量api=`https://calendarific.com/api/v2/holidays?&api_key=&country=${buttonValue}&year=2020`;
//单击按钮时,获取结果
countrySelect.addEventListener('单击',函数()){
获取(api)
.then(res=>res.json())
。然后(数据=>{
var apiResponse=data.response;
控制台日志(apiResponse);
},networkError=>{
警报(网络错误)
})
})
您需要在countrySelect
事件侦听器中定义/重新定义api
变量
目前,它是在单击任何按钮之前定义的,因此buttonValue
是未定义的。因此,即使您的buttonValue
随着按钮被点击而改变,api
变量仍保持原样,即country=undefined
let countrySelect=document.getElementById('country-select');
让按钮有价值;
const button=document.queryselectoral(“按钮”).forEach(
button=>button.addEventListener('click',函数(e){
按钮值=e.target.value;
控制台日志(按钮值);
})
);
//单击按钮时,获取结果
countrySelect.addEventListener('单击',函数()){
常量api=`https://calendarific.com/api/v2/holidays?&api_key=&country=${buttonValue}&year=2020`;
控制台日志(api);
});代码>
#国家/地区选择{
边框:1px纯绿色;
颜色:绿色;
显示:内联块;
光标:指针;
}
英国
美国
选择国家
@CertainPerformance抱歉,我对您的回答有点困惑。我想获得点击按钮的值(其中包含国家值),然后将其添加到我的api密钥中,这样它就可以根据国家返回假日。记录整个对象有什么帮助?我只是有点困惑。抱歉。@Nick您能给出一个呈现的HTML
的示例吗?或者您能检查按钮
元素是否确实设置了值
属性吗。如果按钮
元素没有值
属性,它将返回未定义的
@NewToJS确保以下按钮:加拿大美国墨西哥
@CertainPerformance No.当我控制台记录按钮值并单击按钮返回值。虽然当我把它添加到我的api密钥时,它显示为未定义。谢谢你帮助解决我的问题。在单击按钮之前,您对api的定义是正确的。非常感谢。