按键搜索时字典返回未定义



我目前正在制作一个小的测试网站,我有一个函数,将根据输入添加图像到innerHTML:

function montreImg(nomImage){
var output = document.getElementById("fileContent"/*Placeholder*/);
var images = {
ranch : "/ressources/bungalow/ranch.jpg",
bungalowstyle : "/ressources/bungalow/bungalow style.jpg",
tuscan : "/ressources/bungalow/tuscan.jpg",
farmhouse : "/ressources/bungalow/farmhouse.jpg",
traditional1 : "/ressources/bungalow/traditional1.jpg",
cabin : "/ressources/2etages/cabin.jpg",
craftsman : "/ressources/2etages/craftsman.jpg",
modern : "/ressources/2etages/modern.jpg",
southern : "/ressources/2etages/southern.jpg",
traditional2 : "/ressources/2etages/traditional2.jpg"
};
console.log(images.nomImage);
var img = '<img src="' + images[nomImage] + '">';
output.innerHTML += img;
}

每当我通过键搜索对象时,它会给我undefined(在控制台日志中),它会说找不到图像,因为它正在搜索undefined。我最初将键作为字符串并使用:

进行搜索
images[nomImage]

,但也返回undefined。我验证过了,输入是字符串类型的。我搜索了几个小时,但没有找到任何一个和我有类似问题的人。我不使用AJAX或任何其他框架,它是纯JS和本地网站。

我似乎找不到我的代码有什么问题,但我对JS比较陌生,所以我可能错过了一些明显的东西。

提前感谢。

我只是通过复制和粘贴控制台日志发现,在我的输入文本前面有一个额外的空间。这把我逼疯了。很抱歉发了这个帖子,但我会把它留在上面,以防有人遇到和我一样的事情。

输入如下:

"tuscan "

但它应该是:

"tuscan"

没有注意到,直到我复制并粘贴到日志之外。

console.log不会打印undefined的唯一方法是,如果您的字典中确实有该键的条目。

它们是等价的:

console.log(images.nomImage)
console.log(images['nomImage'])

那么,你想要的就在代码的下面一行,也就是:

console.log(images[nomImage]) 

…因为这将提取nomImage保存的键的值。

相关内容

  • 没有找到相关文章

最新更新