【发布时间】:2016-01-22 14:27:47
【问题描述】:
我有带有日期值的 JSONObject。每个日期或日期范围都有 ID。我使用此代码创建 JSON:
<script>
<cfset dateStruct = structNew() />
<cfoutput query="qryOne">
<cfset dateStruct[userID] = arrayNew(1) />
<cfloop from="#PickDateTime#" to="#DropDateTime#" index="i" step="#CreateTimeSpan(1,0,0,0)#">
<cfset arrayAppend(dateStruct[userID],"#dateformat(i,'mmddyyyy')#")/>
</cfloop>
</cfoutput>
var jsonString = '<cfoutput>#SerializeJSON(dateStruct)#</cfoutput>';
var JSONObject = JSON.parse(jsonString);
function giveClass(){
for(var key in JSONObject){
res = document.getElementById(JSONObject[key]);
res.className = 'booked'
}
}
</script>
我在 jsonString 上做了警报,看起来像这样:
{"49":["01082016","01092016"],"48":["03012016","03022016","03032016","03042016","03052016","03062016","03072016","03082016","03092016","03102016","03112016","03122016","03132016","03142016","03152016","03162016","03172016","03182016","03192016","03202016","03212016","03222016","03232016","03242016","03252016","03262016","03272016","03282016","03292016","03302016","03312016"],"44":["01122016"],"47":["02062016"],"46":["02112016","02122016","02132016","02142016","02152016"],"35":["01132016"],"36":["01212016"],"39":["01162016"],"37":["01262016"],"38":["01192016"],"43":["01312016"],"42":["02022016","02032016"],"41":["01142016"],"40":["01172016","01182016","01192016"],"51":["01282016"],"52":["02252016","02262016"],"50":["01282016"]}
每个日期都存储在唯一的 ID 下。在我上面的函数中,我想将 className = 'booked' 分配给每个 ID,而不是分配给每个值。例如,如果我有id:"42":["02022016","02032016"],我想为这两个值提供类名,而不仅仅是 id 42。我的函数现在只在 id 上给我类,我怎样才能让这个给我每个值的类名?
【问题讨论】:
-
您可以将 JSON 直接放入您的 JavaScript 代码中。它不必是字符串,也不必显式解析;只需将其创建为纯 JavaScript。
-
只需遍历数组即可。
标签: javascript json for-loop coldfusion