我有一个屏幕需要根据两个不同的参数计算价格,主要(例如活动)和子(例如ticketType)
以前这是以骇人听闻的方式完成的,所以我决定最好的选择是将价格存储在运行时填充的 JSON 对象中,并基于点击和更改事件
所以我有我制定的这个json格式,请注意你也可以改变这个,不是一成不变的
{
"activities": [{
"activitycode": "TK",
"desc": "Tickets",
"ticketTypes": [{
"ticketcode": "G",
"baseprice": 79
}, {
"ticketcode": "P",
"baseprice": 109
}]
}, {
"activitycode": "PK",
"desc": "Parking",
"ticketTypes": [{
"ticketcode": "BK",
"baseprice": 65
}, {
"ticketcode": "ESC-I",
"baseprice": 40
}]
}], //end activities
"handlingPercent": "0.03",
"shipping": "15"
}
所以,我尝试以正确的价格遍历 JSON 对象,就像这样
pricing.activities.activitycode['TK'].ticketTypes.ticketcode['G'].baseprice
但这不起作用,因为在提供我的值之前我还没有指定要转到哪个数字节点
一旦我这样做了,以下工作
pricing.activities[0].ticketTypes[0].baseprice
但我想要完成的是提供字符串/文本值,遍历父节点,然后是子节点,并找到值
我想我可以像这样进行 $.each 迭代,但我想知道专家们首先是怎么想的,如果这确实是处理事情的最佳方式
$.each(pricing.activities, function(arrayID, activityData) {
if(activityData.activitycode=="TK")
$.each(activityData.ticketTypes, function(ticketTypeID, typeData) {
if(typeData.ticketcode=="G")
alert(typeData.baseprice);
});
});