【发布时间】:2014-03-15 04:03:48
【问题描述】:
我有一个下拉列表,选择类别后,它应该在同一 div 中显示该类别的项目。
我在“onChange”上写了一个函数,它也可以工作。当我点击汤时,它会显示汤的项目,然后当我点击开胃菜时,它应该只显示开胃菜,但它会显示汤项目,在其下方显示开胃菜。
我尝试使用 innerHTML 甚至 document.write 函数,但使用 document.write 会刷新页面并仅显示项目,我的下拉菜单和页面中的其他内容消失了。
请帮忙。提前致谢。
这里是函数。
<body>
<div style="margin:left:80px;">
<select id='menu' style='height:40px;width:160px;' onChange="displayItems()">
<option value='items' selected='selected' disabled>Select Items</option>
<script>
var rasvanti_menu=["Soup","Pasta","Pizza","Sandwich","Snacks","Starters","Bread","Rice","Rice/Noodles","Gravies","Beverages","Extras"];
var rasvanti_soup=["Coriander soup","Cream of Veg soup","Cream of tomato soup","Hot and sour soup","Manchow soup","Palak soup","Sweet corn soup","Veg Clear soup"];
var rasvanti_starters=["Baby Corn Chilli","Baby Corn Finger","Finger Chips","Harabhara Kabab","Manchurian Dry","Mushroom Tikka","Pan Crispy","Paneer 65","Paneer Chilly Dry","Paneer Malai Kabab","Paneer Manchurian Dry"];
for(var i=0;i<=rasvanti_menu.length;i++)
{
document.write("<option value='"+i+"'>"+rasvanti_menu[i]+"</option>");
}
var id = document.createElement("table");
function displayItems() {
var selectedMenu = document.getElementById('menu');
var selectedSoup = selectedMenu.options[selectedMenu.selectedIndex].text;
if (selectedSoup == "Soup") {
for (var s = 0; s < rasvanti_soup.length; s++) {
id.innerHTML += "<tr><td>" + rasvanti_soup[s] + "</td></tr>";
document.getElementById("items_tray").appendChild(id);
}
} else if (selectedSoup == "Starters") {
for (var l = 0; l < rasvanti_starters.length; l++) {
id.innerHTML += "<tr><td>" + rasvanti_starters[l] + "</td></tr>";
document.getElementById("items_tray").appendChild(id);
}
}
}
</select>
<table id="items_tray">
</table>
</div>
</body>
【问题讨论】:
-
你能解决这个问题吗?
-
请附上您的代码示例。如果不查看您正在处理的内容,就不可能准确地确定问题并回答您的问题。
-
我已将我的函数发布到我显示项目的位置。
标签: javascript html drop-down-menu