我在看http://docs.jquery.com/Plugins/Authoring#Defaults_and_Options为jQuery创建一个简单的插件。在关于选项和设置的部分之后,我执行了以下操作,但这些操作无效(脚本在遇到设置时退出)。
var settings = {
'location' : 'top',
'background-color': 'blue'
}
...
$this.css('backgroundColor', settings.background-color); // fails here
一旦我从背景颜色中移除了短划线,一切正常。
var settings = {
'location' : 'top',
'backgroundColor': 'blue' // dash removed here
}
...
$this.css('backgroundColor', settings.backgroundColor);
我错过了什么,或者jQuery文档错了吗?
答案 0 :(得分:98)
没有。解析器会将其解释为减法运算符。
你可以settings['background-color']
。
答案 1 :(得分:16)
将settings.background-color
更改为settings['background-color']
。
变量不能包含-
,因为它被作为减法运算符读取。
答案 2 :(得分:8)
破折号在javascript变量中不合法。变量名必须以字母,美元符号或下划线开头,后跟相同或数字。
答案 3 :(得分:3)
你可以在字符串中使用破折号。如果你真的想保留那个破折号,你必须使用括号和诸如此类的东西来引用该属性:
$this.css('backgroundColor', settings['background-color']);
答案 4 :(得分:0)
您可以执行以下操作:
var myObject = {
propertyOne: 'Something',
'property-two': 'Something two'
}
var result1 = myObject.propertyOne
var result2 = myObject['propertyOne']
var result3 = myObject['property-two']