[英]Retrieve specific value from Javascript object
我有一个Javascript对象,其以下格式分配给了javascript变量:
var events =
[
{
"Id":20,
"CustomerId":9,
"CustomerName":"Mark Wikkins",
"Code":"CT6789",
"CustomerDate":"\/Date(1466679600000)\/",
"Levels":[
{
"Id":92,
"Nivel":0,
"Code1":"Sales",
"Code2":null,
"Description":"Customer",
},
{
"Id":94,
"Nivel":0,
"Code1":"Sales",
"Code2":null,
"Description":"Customer",
}
]
},
{
"Id":21,
"CustomerId":14,
"CustomerName":"John Stweart",
"Code":"CT70000",
"CustomerDate":"\/Date(146667970000)\/",
"Levels":[
{
"Id":102,
"Nivel":0,
"Code1":"Jobs",
"Code2":null,
"Description":"Customer",
},
{
"Id":106,
"Nivel":"0",
"Code1":"Commissions",
"Code2":null,
"Description":"Customer",
},
{
"Id":113,
"Nivel":0,
"Code1":"Organizations",
"Code2":null,
"Description":"Customer",
}
]
}
];
而且我有以下文本和值的下拉列表
<select name="customers_select" id="customers_select">
<option value="92">Sales</option>
<option value="106">Commisions</option>
<option value="113">Organizations</option>
</select>
如果我想从下拉菜单中选择后获得CustomerDate
,那么最好的方法是什么?
如您所见,select(下拉)的值映射到Level ID,但是level是Javascript Object
父对象的属性。
因此,如果我从下拉列表中选择"Commisions"
,则需要评估变量事件并获取第二个对象的CustomerDate。
是否可以通过传递事件Javascript Object
数组中的select值来获得CustomerDate?
有两种方法可以做到这一点。
像这样循环遍历您的JavaScript对象并将Level_ids映射到CustomerDate:
var hash = {};
hash["level-102"] = "\/Date(146667970000)\/";
hash["level-106"] = "\/Date(146667970000)\/";
hash["level-113"] = "\/Date(146667970000)\/";
... and so on
您可以通过使用jQuery的.each()
函数遍历对象来做到这一点(并且您需要在其中的另一个对象遍历Level对象)。
在JavaScript select事件中,您可以获取ID并创建一个字符串"level-" + id
,然后在哈希表中查找: var customerDate = hash["level-" + id];
保持JavaScript对象不变,当用户从下拉列表中进行选择时,它将触发事件处理程序,该事件处理程序遍历您的复杂对象以查找level_id。 在执行此操作时,它会记住当前的“ CustomerDate”,因此当找到该“ CustomerDate”时,您会跳出搜索循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.