Javascript 如何从JS中选择选项build来组合商品的价格

Javascript 如何从JS中选择选项build来组合商品的价格,javascript,html,jquery,html-select,Javascript,Html,Jquery,Html Select,因此,在这段代码中,我试图创建一个订单按钮函数来显示文本,结果将是商品名称和价格标签。但是我需要更改这里的代码,这样如果项目名称相同,结果不会显示多个文本,当我在同一项目中单击订单时,它将乘以价格,即我单击多少次示例:从选择选项中单击同一项目的两次订单按钮,该项目的价格乘以2。抱歉,如果我问得太多,我的大脑无法理解如何构建代码。代码如下: 风险值数据={ 食物:[{ id:1, 名称:“炒饭”, 价格:10000 }, { id:2, 名称:“炒面”, 价格:9000 }, { id:3, 名

因此,在这段代码中,我试图创建一个订单按钮函数来显示文本,结果将是商品名称和价格标签。但是我需要更改这里的代码,这样如果项目名称相同,结果不会显示多个文本,当我在同一项目中单击订单时,它将乘以价格,即我单击多少次示例:从选择选项中单击同一项目的两次订单按钮,该项目的价格乘以2。抱歉,如果我问得太多,我的大脑无法理解如何构建代码。代码如下:

风险值数据={ 食物:[{ id:1, 名称:“炒饭”, 价格:10000 }, { id:2, 名称:“炒面”, 价格:9000 }, { id:3, 名称:“煎饼”, 售价:8500 }, { id:4, 名称:“炸薯条”, 售价:7500 } ], 饮料:[{ id:1, 名字:“可乐”, 售价:4600 }, { id:2, 名称:“橙汁”, 售价:5400 }, { id:3, 名称:“矿泉水”, 价格:3500 }, { id:4, 名称:“咖啡”, 售价:5800 } ] } 功能手柄更换{ var x=document.getElementByIdcategory\u select.value; var dataOptions=data[x] var dataSelect=document.getElementById'type\u select' dataSelect.innerHTML= dataOptions.forEachfunctionoption{ var optionEle=document.createElement'option' optionEle.value=option.id optionEle.label=option.name optionEle.setAttribute'data-price',option.price dataSelect.appendChildoptionEle } } 手换 $document.readyfunction{ var selectMenu=[]; $button.clickfunction{ selectMenu.push$type_选择选项:selected.attr'label'+:+$type_选择选项:selected.data'price'; $.result.htmlselectMenu.join; }; }; 钮扣{ 宽度:50%; 左边缘:25%; 右边距:25%; } JS-Bin 菜单 食物 喝 顺序
我想到的简单解决方案是:创建一个关联数组,将项目的每个id映射到它的数量。文档准备好后,将数量初始化为0,然后在每次事件单击后,您可以更新数量并计算新的价格。

我想到的简单解决方案:创建关联数组,将项目的每个id映射到其数量。文档准备就绪时,将数量初始化为0,然后在每次事件单击后,您可以更新数量并计算新的价格。

使用对象而不是数组的快速解决方案:

风险值数据={ 食物:[ { id:1, 名称:“炒饭”, 价格:10000 }, { id:2, 名称:“炒面”, 价格:9000 }, { id:3, 名称:“煎饼”, 售价:8500 }, { id:4, 名称:“炸薯条”, 售价:7500 } ], 饮料:[ { id:1, 名字:“可乐”, 售价:4600 }, { id:2, 名称:“橙汁”, 售价:5400 }, { id:3, 名称:“矿泉水”, 价格:3500 }, { id:4, 名称:“咖啡”, 售价:5800 } ] } 功能手柄更换{ var x=document.getElementByIdcategory\u select.value; var dataOptions=data[x] var dataSelect=document.getElementById'type\u select' dataSelect.innerHTML= dataOptions.forEachfunction选项{ var optionEle=document.createElement'option' optionEle.value=option.id optionEle.label=option.name optionEle.setAttribute'data-price',option.price dataSelect.appendChildoptionEle } } 手换 $document.readyfunction{ var selectMenu={}; $button.clickfunction{ var article=$type_选择选项:selected.attr'label'; var price=Number$type_选择选项:选中。数据“price”; 如果SelectMenu.hasOwnPropertyarticle{ 选择菜单[物品]+=价格; }否则{ 挑选员 u[物品]=价格; } var result=JSON.stringifyselectMenu.replace/,/g,.replace/\{124;\}/g,; $.result.htmlresult; }; }; 钮扣{ 宽度:50%; 左边缘:25%; 右边距:25%; } JS-Bin 菜单 食物 喝 顺序
使用对象而不是数组快速解决方案:

风险值数据={ 食物:[ { id:1, 名称:“炒饭”, 价格:10000 }, { id:2, 名称:“炒面”, 价格:9000 }, { id:3, 名称:“煎饼”, 售价:8500 }, { id:4, 名称:“炸薯条”, 售价:7500 } ], 饮料:[ { id:1, 名字:“可乐”, 售价:4600 }, { id:2, 名称:“橙汁”, 售价:5400 }, { id:3, 名称:“矿泉水”, 价格:3500 }, { id:4, 名称:“咖啡”, 售价:5800 } ] } 功能手柄更换{ var x=document.getElementByIdcategory\u select.value; var dataOptions=data[x] var dataSelect=document.getElementById'type\u select' dataSelect.innerHTML= dataOptions.forEachfunction选项{ var optionEle=document.createElement'option' optionEle.value=option.id optionEle.label=option.name optionEle.setAttribute'data-price',option.price dataSelect.appendChildoptionEle } } 手换 $document.readyfunction{ var selectMenu={}; $button.clickfunction{ var article=$type_选择选项:selected.attr'label'; var price=Number$type_选择选项:选中。数据“price”; 如果SelectMenu.hasOwnPropertyarticle{ 选择菜单[物品]+=价格; }否则{ 选择菜单[物品]=价格; } var result=JSON.stringifyselectMenu.replace/,/g,.replace/\{124;\}/g,; $.result.htmlresult; }; }; 钮扣{ 宽度:50%; 左边缘:25%; 右边距:25%; } JS-Bin 菜单 食物 喝 顺序
如果同一物品有多个订单,是否要求和?是的,对于结果,我需要同一物品的总价,但不复制通过单击按钮创建的物品文本。如果同一物品有多个订单,是否要求和?是,对于结果,我需要相同项目的总价,但不复制通过单击按钮创建的项目文本。我已经尝试了另一个分配,但我真的希望在不更改根的情况下解决此问题。无论如何,谢谢你的提示!是的,我在我的另一个任务中尝试过这个,但我真的希望在不改变根的情况下解决这个问题。无论如何,谢谢你的提示!