Ответ 1
нет. синтаксический анализатор будет интерпретировать его как оператор вычитания.
вы можете сделать settings['background-color']
.
Я смотрел http://docs.jquery.com/Plugins/Authoring#Defaults_and_Options, чтобы создать простой плагин для jQuery. Следуя разделу о параметрах и настройках, я сделал следующее, которое не сработало (script quit, когда он столкнулся с настройкой).
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?
нет. синтаксический анализатор будет интерпретировать его как оператор вычитания.
вы можете сделать settings['background-color']
.
Измените settings.background-color
на settings['background-color']
.
Переменные не могут содержать -
, потому что это считывается как оператор вычитания.
Дрифты не являются законными в переменных javascript. Имя переменной должно начинаться с буквы, знака доллара или символа подчеркивания и может сопровождаться тем же или числом.
У вас могут быть тире в строках. Если вы действительно хотели сохранить эту тире, вам нужно будет ссылаться на свойство, используя скобки и еще что-то:
$this.css('backgroundColor', settings['background-color']);
Вы можете сделать что-то вроде этого:
var myObject = {
propertyOne: 'Something',
'property-two': 'Something two'
}
var result1 = myObject.propertyOne
var result2 = myObject['propertyOne']
var result3 = myObject['property-two']