jq根据json数据,动态生成一个二级联动菜单

jq根据json数据,动态生成一个二级联动菜单

html

蔬菜:<select name="vegetable" id="vegetable">
			<option value="0">请选择类别一</option>
		</select>
水果:<select name="fruit" id="fruit">
		<option value="0">请选择类别二</option>
	</select>

json数据

let menu = [
	{
		"type_id" : 1,
		"name" : "蔬菜",
		"food" : [
			{
				"food_id" : 1,
				"name" : "白菜",
				"price" : "10"
			},
			{
				"food_id" : 2,
				"name" : "冬瓜",
				"price" : "10"
			},
			{
				"food_id" : 3,
				"name" : "西蓝花",
				"price" : "10"
			}	
		]
	},
	{
		"type_id" : 2,
		"name" : "水果",
		"food" : [
			{
				"food_id" : 4,
				"name" : "香蕉",
				"price" : "10"
			},
			{
				"food_id" : 5,
				"name" : "苹果",
				"price" : "10"
			},
			{
				"food_id" : 6,
				"name" : "橙子",
				"price" : "10"
			}	
		]
	}		
];

jq循环

// 根据menu的数据,动态生成一个二级联动菜单
for(let item of menu){
	let	html = `<option value="${item.type_id}">${item.name}</option>`;
	$('#vegetable').append(html)
}
$('#vegetable').change(function(){
	// 每次改变选择时,应先清空二级下拉框
	$('#fruit').html('<option value="0">请选择类别二</option>');
	// 重点:获取当前选择的value
	let index = $(this).val() - 1;
	if(index < 0){
		return;
	}
	// 根据value去循环相对应的food
	for(let item of menu[index].food){
		let	html = `<option value="${item.food_id}">${item.name}</option>`;
		$('#fruit').append(html)
	}
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值