2010-04-07 1 views
0

Вот быстрая версия кода, как он стоит прямо сейчас:Можно ли использовать строковую переменную для ссылки на элемент в Javascript?

function foo(attributeName, someJSObj, key, newValue) 
{ 
    someJSObj[key].attributeName = newValue; 
} 

Очевидно, что это не работает, так как он просто создает новый элемент под названием ATTRIBUTENAME. Есть ли простой способ разыменовать attributeName в строке, которая представляет какой-то существующий атрибут на someJSObj?

ответ

5

Вы должны использовать кронштейн для обозначения attributeName, а также:

function foo(attributeName, someJSObj, key, newValue) 
{ 
    someJSObj[key][attributeName] = newValue; 
} 

Теперь значение attributeName используется в качестве идентификатора вместо идентификатора attributeName сам.

+0

Это работает! Не знал, что свойства могут ссылаться на массивы второго порядка ala. – somerandomguy

0

Попробуйте someJSObj [ключ] .setAttribute (ATTRIBUTENAME, новое_значение)

1

Если я вас правильно понял, вы могли бы использовать ECMAScript

function foo(attributeName, someJSObj, key, newValue) 
{ 
    someJSObj[key][attributeName] = newValue; 
} 

Надеется, что это помогает вам.

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