好了,所以這是我的HTML代碼我試圖使用JavaScript創建一個HTML網頁上的動態菜單,但保持有麻煩
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Menus</title>
<script type="text/javascript" src="Cities.js">
</script>
</head>
<body>
<select id="Countries" name="countries" onchange="populate('Countries','Cities')">
<option value="">Country</option>
<option value="Ireland">Ireland</option>
<option value="Romania">Romania</option>
<option value="England">England</option>
<option value="Spain">Spain</option>
<option value="Germany">Germany</option>
</select>
<select id="Cities" name="cities">
<option value="">Cities</option>
</select>
</form>
</body>
</html>
好了,一切似乎都在這裏好爲止,這裏是我的JavaScript代碼
//Populates Countries and Cities select form elements
function populate(s1,s2)
{
var s1 = document.getElementById(s1);//s1==Countries
var s2 = document.getElementById(s2);//s2==Cities
s2.innerHTML="";
/**
* if s1==Ireland print Dublin
*/
if(s1.value=="Ireland"){
var optionArray = ["|", "dublin|Dublin"];
}
/**
* If s1==Romania print Bucharest
*/
else if (s1.value=="Romania"){
var optionArray=["|", "bucharest|Bucharest"];
}
/**
* if s1==England print Liverpool
*/
else if (s1.value=="England"){
var optionArray=["|", "liverpool"|"Liverpool"];
}
/**
* if s1==Spain print Madrid
*/
else if (s1.value=="Spain") {
var optionArray=["|", "madrid"|"Madrid"];
}
/**
* if s1==Germany print Munich
*/
else if (s1.value=="Germany"){
var optionArray=["|","munich"|"Munich"];
}
for(var option in optionArray){
var pair = optionArray[option].split("|");
var newOption = document.createElement("option");
newOption.value = pair[0];
newOption.innerHTML=pair[1];
s2.options.add(newOption);
}
}
正如你可以看到我想要做的是創造,如果,如果else語句,因此如果從HTML文件一定選擇元素被選中,它會從打印出城國家。
現在奇怪的部分是,它適用於愛爾蘭和羅馬尼亞,當他們被選中時,我可以選擇從其他下拉菜單中選擇都柏林或布加勒斯特,但它不適用於其他任何3個國家?
現在看到它可以用於前兩個選擇元素,這讓我認爲我的for循環或HTML代碼中存在問題,但我並不完全確定。它可能只是一個小問題,我只是看不到我的臉。
任何幫助將不勝感激,謝謝。
「Countries1」是什麼?看看你的開發者控制檯,它會有這個錯誤.... – epascarello
檢查你的報價 – Andreas
哎呀抱歉,這是我嘗試修復它時剩下的一點點。但是,這不是問題。現在只是'國家'。 –