2011-09-16 6 views
1

의 속성을 가지고 접근 :I 그 이름이 때 이런 목적 변수

var items = { 
    foobar: { 
    foo: 'bar' 
    } 
}

과 내가 사용자가 양식을 선택하면 I받은 값의 이름 '는 foobar'를 가지고 난 단지 이름이 '는 foobar'을 알고

var item = $('select').val(); // which is 'foobar'

가 어떻게 그 변수에 items.foobar.foo에 액세스 할 수 있습니다 같은? 그것은 items.item.foo에서 변수로 '항목'을 구문 분석하지 않습니다 ...

PHP에서 다소 $items[$item]['foo'] 일을하는 것 같아요. 그러나 나는 자바 스크립트에서 어떻게하는지 잘 모릅니다.

감사합니다.

+0

감사합니다 여러분. 나는 지금 멍청한 기분이 들지만 왜 그걸 시도하지 않았는지 모르겠다. 나는 점 표기법에 대한 대안이 있다는 것을 잊었을 것입니다. 모든 사람들이 저에게 정확한 답을 주었기 때문에 가장 공정한 대답으로 가장 오래된 대답을 받아 들일 것입니다. 하지만 고마워! – Rob

+0

가능한 복제 [자바 스크립트 개체, 액세스 변수 이름?] (http://stackoverflow.com/questions/4255472/javascript-object-access-variable-property-name) ... [변수를 사용하여 자바 스크립트 개체 속성] (http://stackoverflow.com/questions/4773897/using-a-variable-as-part-of-a-javascript-object-property) – user113716

답변

1

직접하여 액세스 할 수 있습니다 JS에서 items[foobar].foo

0

그것은 PHP와 매우 유사합니다. foo['bar']은 예를 들어 foo.bar과 동일합니다. 따라서 foo[something]something 변수에 저장된 foo의 구성원에 액세스합니다.

대괄호 표기법은 임의의 키 (예 : 숫자 및 영숫자가 아닌 문자가 포함 된 문자열 나는 당신이 시도있을 것 같아요,

var item = "foobar"; 
alert(items[item].foo); 
1

당신이 item에서 원하는 항목의 이름을 갖는, 당신은 squate 브래킷을 사용하여 속성에 액세스 당신의 PHP 제안 :

items[item]['foo']; 

또는

,210
0

가 네, 그럼 items[ item ]['foo']; :

0
var item = $('select').val(); // which is 'foobar' 
var foo = items[item].foo; 

또는

var foo = items[item]['foo'];