我有一个像这样的JavaScript对象的一部分:
animation:{
"in":{
"effect":"flipInY"
},
"out":{
"effect":"bounceOut"
},
"typeout":{
"shuffle":true
},
"minDisplayTime":"2000",
"loop":true
}
animation
是更大对象(不是简单对象)的一部分。
真正的目标是:
console.log(JSON.stringify(datas));
提供:
{"文本":"例如""字体":" Aclonica""大小":& #34; 50像素"" BGCOLOR":"#291C67""颜色":"#F1EC1C""对齐":"中心""动画" {"在" {"效果":" flipInY&#34 ;}"列" {"效果":" bounceOut"}" typeout" {"混洗" :真}" minDisplayTime":" 2000""环路":真}}
我想检索animation
对象的值以执行其他操作。
特殊键"in"
会导致问题:
var animation=datas.animation;
if (animation.in.effect) $('#result') = animation.in.effect;
错误:
TypeError:动画不是函数
如果我这样做:
if (animation.out.effect) $('#result') = animation.out.effect;
结果是:' bounceOut'
我该怎么做?我无法更改关键字"in"
。
****抱歉,我已经重试了测试,它现在有效..谢谢大家。有效地' in'不是一个特殊的关键字..
答案 0 :(得分:0)
单词in
没有问题。你必须改革你的animation
对象。
var animation = {"animation": {"in":{"effect":"flipInY"},"out":{"effect":"bounceOut"},"typeout":{"shuffle":true},"minDisplayTime":"2000","loop":true}}
console.log(animation.animation.in.effect)
还有一些拼写错误和语法错误:
if(animation.in.effect) $('#result) = animation.in.effect;
应该是
if(animation.in.effect=='flipInY') {
$('#result') = animation.in.effect;
}
答案 1 :(得分:0)
忽略拼写错误(缺少'
),您无法分配函数调用的结果,所以这是错误的:
if(animation.in.effect) $('#result') = animation.in.effect;
// ----------------------------------^ can't do that
您可以将它用作您从$()
获得的jQuery对象上调用的某个函数的参数,例如:
if(animation.in.effect) $('#result').someFunctionhere(animation.in.effect);
什么功能不能立即从问题中清除,但主要问题是尝试分配给函数调用。
(在2009年ES5之前,您无法在该上下文中使用in
作为属性名 literal ,因为in
是关键字。但是您可以从ES5开始。在非常古老的ES5之前的环境中,您需要使用animation["in"].effect
代替。但不能在任何模糊的现代网络浏览器中使用。)
答案 2 :(得分:-1)
不,这是因为你输错了。
更改
animation: {...}
到
animation= {...}