我有一些代碼將用戶輸入與數組中的值進行比較。如果用戶輸入匹配,我想顯示一個img等於輸入值。檢查用戶輸入是否等於數組值
像這樣:用戶輸入字母A,A等於字母[0],所以顯示img A.png。
已經嘗試了一段時間,但似乎無法得到它的工作?我是否需要使用關聯數組
window.onload = btn;
function btn() {
document.getElementById("btn").onclick = generateLetters;
}
// Array containing every letter in the alphabet
var letters = ["A", "B", "C", "D", "A", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "Æ", "Ø", "Å"];
// Array containing a img equal to the letter
var letterImages = [letters[0] = "img/A.png", letters[1] = "img/B.png", letters[2] = "img/C.png", letters[3] = "img/D.png"];
function generateLetters() {
// Get user input and convert to upper case to match array value
var input = document.getElementById("input").value.toUpperCase();
// Loops through letterImages array
for (var x = 0; x < letterImages.length - 1; x++)
// Loops through letters array
for (var i = 0; i < letters.length; i++)
// Check if input is equal to a value inside letters array
if (letters.indexOf(input) > -1) {
// Show img equal to input value
document.getElementById("img").src = letters[x];
}
}
<input id="input" type="text">
<button id="btn" type="button">Generate Letter</button>
<p id="print"></p>
<img id="img" height="50px" width="50px">
'letters'是一個字符串類型的數組,所以'letters [x]'將返回一個字符串。所以當你把它設置爲src時,它將永遠不會得到文件,因爲你沒有傳遞一個src。 – Rajesh
在包含一個img等於該字母的數組中,您將重新分配'letters'數組的值,請注意您的'letters [0]'將是'img/A.png'。那真的是你想要的嗎? – Walk
你在'letters'數組中還有兩個''A'',這就是爲什麼即使你正在重寫你的第一個「A」實例(如我之前的評論中所述),它仍然會找到第二個 – Walk