html表单中下拉列表,javascript – 根据同一html表单中的另一个下拉列表填写下拉列表...

您可以使用一个对象来保存值以及相关的下拉列表描述.为此,首先需要在下拉列表中添加一个eventListener,以便在选择新水果时检测到更改.使用此事件侦听器,您可以检索使用this.value选择的选项的值.

使用所选选项中的值,您可以继续从名为price的对象中获取其关联的下拉值(这将返回一个数组).一旦你有了这个数组,就可以循环遍历它并使用.reduce()“构建”一串HTML作为price select标签的选项.一旦你构建了这个字符串,就可以使用.innerHTML将它附加到select标签内,它将你的HTML字符串“转换”为DOM对象(真实元素而不仅仅是文本):

let prices = {"apple":[{value:3,desc:"Apple 1kg 3€"},{value:5,desc:"Apple 2kg 5€"},{value:7,desc:"Apple 3kg 7€"}],

"banana":[{value:3,desc:"Banana 2kg 3.5€"},{value:5,desc:"Banana 4kg 7€"},{value:7,desc:"Banana 5kg 11€"}],

"peach":[{value:3,desc:"Peach 1.5kg 3€"},{value:5,desc:"Peach 3kg 6€"},{value:7,desc:"Peach 4kg 7€"}]}

document.getElementsByName('fruit')[0].addEventListener('change', function(e) {

document.getElementsByName('price')[0].innerHTML = prices[this.value].reduce((acc, elem) => `${acc}${elem.desc}`, "");

});

Apple

Banana

Peach

Apple 1kg 3€

Apple 2kg 5€

Apple 3kg 7€

如果您觉得使用.reduce()感觉不舒服,可以使用常规for循环:

document.getElementsByName('fruit')[0].addEventListener('change', function(e) {

let options = "";

for(obj of prices[this.value]) {

options += '' +obj.desc +'';

}

document.getElementsByName('price')[0].innerHTML = options;

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值