我有一个下拉列表,当点击其中一个项目时,我会调用此函数:
onClick(type) {
type.preventDefault();
let query = type.target.text;
PokeApi.pokemonType(query).then(function(data) {
console.log(data);
}.bind(this));
}
console.log返回undefined。
当我这样做时:
onClick(type) {
type.preventDefault();
let query = type.target.text;
console.log(query);
console.log(typeof query);
PokeApi.pokemonType(query).then(function(data) {
console.log(data);
}.bind(this));
}
第一个console.log将返回下拉项的文本。第二个console.log将返回字符串。现在,当我将查询传递给PokeApi.pokemonType时,我可以从api返回404错误,第三个console.log返回undefined。
但是,如果我直接传递下拉列表的文本:
onClick(type) {
type.preventDefault();
PokeApi.pokemonType("ice").then(function(data) {
console.log(data);
}.bind(this));
}
一切都很完美,我从api那里得到了正确的对象。
知道为什么会这样吗?我做错了什么?
答案 0 :(得分:0)
您必须获取下拉列表选定元素的值
var sel = document.getElementById('myDropdown'),
var selectedText = sel.options[sel.selectedIndex].value;