返回值的javascript下拉菜单

返回值的javascript下拉菜单,javascript,html,drop-down-menu,Javascript,Html,Drop Down Menu,已经使用该网站一段时间了-第一次发布 我有个问题要解决。在Javascript(不是jQuery或AJAX)中,我尝试使用两个下拉菜单,第三个字段根据这两个下拉菜单返回一个整数。因此,我有下拉菜单1,当用户从该菜单中选择一个值时,第二个下拉菜单将显示相关项目-使用我在这里找到的一个示例,我运行良好: 但是,我现在需要能够根据第二个下拉菜单中的选择拉出一个值。例如,用户在第一个菜单中选择“奥迪”,然后在第二个菜单中选择“A4”,然后显示该特定项目的价格 我对此完全不知所措,一直在尝试使用第二个下拉

已经使用该网站一段时间了-第一次发布

我有个问题要解决。在Javascript(不是jQuery或AJAX)中,我尝试使用两个下拉菜单,第三个字段根据这两个下拉菜单返回一个整数。因此,我有下拉菜单1,当用户从该菜单中选择一个值时,第二个下拉菜单将显示相关项目-使用我在这里找到的一个示例,我运行良好:

但是,我现在需要能够根据第二个下拉菜单中的选择拉出一个值。例如,用户在第一个菜单中选择“奥迪”,然后在第二个菜单中选择“A4”,然后显示该特定项目的价格

我对此完全不知所措,一直在尝试使用第二个下拉菜单中的索引-一旦用户选择了第三项,索引应该返回“4”,我就可以设置另一个数组,将“4”切换到我想要的值-但这似乎很笨拙

在我对菜单的初始测试中,我使用了以下数组:

    stone_category = 0;
 stone_category["Granite & Marble"]=1;
 stone_category["Sensa Granite"]=2;
 stone_category["Silestone Quartz - Polished Finish"]=3;
 stone_category["Silestone Quartz - Leather & Volcano Finish"]=4;
 stone_category["Eco Recycled Surfaces - Polished Finish"]=5;
 stone_category["Caesarstone Quartz - Polished Finish"]=6;
 stone_category["Unistone Quartz - Polished & Leather Finish"]=7;
 stone_category["Samsung Radianz Quartz - Polished Finish"]=8;
 stone_category["Okite Quartz - Polished Finish"]=9;
 stone_category["Compac Quartz - Polished and Matt Finish"]=10;
我可以从中提取数值,用于计算。然而,我当时不得不设置下拉菜单,这种数组样式对第二个菜单不起作用,这让我现在不知所措


我希望我已经解释得足够清楚。

您可以为这些元素添加一个额外的属性,比如
category id=“x”
,其中
x
是您希望从每个元素中提取的值。然后,您可以使用选择器获取该值:

value=document.querySelector(“#子菜单.checked”).getAttribute(“类别id”)


更改
#子菜单
。使用您添加到子菜单和所选项目的任何类或选择器检查

感谢您的回复,我很抱歉错过了昨天的HTML out-brain frazzle(距离上次编码时间太长了!)

最后,我通过在最终计算中创建一个switch语句来解决这个问题。这将从用户选择的第二个菜单中检索值,并将其切换为所需值,如下所示:

var a = document.getElementById("ddl2");
var strUser = a.options[a.selectedIndex].value;
//将石头的名称转换为价格

if (thicknessDesired == "20") {
switch (strUser) {
case 'Galaxy Grey':
case 'Rosa Porrino':
case 'Rosa Sardo':
        var price = '99.75';
    break;
switch语句现在增长很快,因此只发布了一个片段。这可能不是最优雅的解决方案,但我发现它工作得很好,所以现在我可以继续讨论下一个问题了


再次感谢各位

是的,您解释得很清楚,但是,请添加您当前的HTML和javascript(如果可能的话,请添加设置FIDLE)。我相信你会很快得到答案