2015-09-28 2 views
1

У меня есть объект json, который я запрашиваю в jquery и не могу использовать значения, хранящиеся в переменных jquery. Пример:Запрос объекта json с переменными jquery

$tops= json.tops 
$color = "blue"; 

Если я console.log($tops.blue); я получаю ожидаемый результат. Но, если я console.log($tops.$color);, я получаю 'undefined'.

Может ли кто-нибудь объяснить, что я делаю неправильно/какая разница?

+2

вы можете разместить код, который вы уже пробовали? – Jesse

+0

Был ли 'json' когда-либо разобран? Что возвращается, когда вы вводите 'typeof json'? – Dom

+0

Почему вы ожидаете, что '$ tops.blue' будет таким же, как' $ tops. $ Color'? Вы не назначили '$ tops. $ Color'. –

ответ

1

Из вашего примера console.log, я думал, что вы ищете $tops[$color]. $tops.$color будет искать свойство '$color'.

Из вашего образца кода, я думаю, вам понадобится $color = 'blue' (синий будет строкой), так как в настоящее время это будет значение переменной с именем blue.

Кроме того, возможно, это было бы полезно: JavaScript property access: dot notation vs. brackets?

+0

Я редактировал свой вопрос, чтобы включить «», я оставил их по ошибке, но они в моем коде. Я бы не использовал скобки, потому что я не получаю доступ к массиву –

+0

@TatianaFrank Если вы посмотрите на ссылку, которую я включил, вы увидите, что одно из видов использования - это «выбор свойств с использованием переменных». Нотация доступа к массиву рассматривает объект как словарь , с именами свойств, являющимися ключами. По существу 'obj.x == obj ['x']'. – ryachza

+0

ahh, что имеет смысл. Спасибо! –

Смежные вопросы