[英]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.