2010-05-26 3 views
2

이것은 매우 간단한 문제처럼 보입니다.하지만 작동시키지 못합니다. 내가 클릭 된의 ID로 올바른 개체 값을 얻을 필요가 지금요소 ID로 자바 스크립트 개체 키? (jQuery)

<a id="one">click</a> 
<a id="two">click</a> 
<a id="three">click</a> 

: 나는 약간의 HTML과 같이이 그런

var person = {}; 
person.one = {gender: 'male', name: 'John'}; 
person.two = {gender: 'male', name: 'Doe'}; 
person.three = {gender: 'female', name: 'Jane'}; 

:

은이 같은 자바 스크립트 객체를 링크. 그래서 기본적으로 키가 문자열이므로 for-loop없이 첫 번째 수준의 객체 키에 동적으로 액세스해야합니다.

나는 이것을 시도했다 : 그것은 작동하지 않았다

$('a').click(function() { 
    alert(person[$(this).attr('id')['gender']]); 
}); 

. 어느 쪽이든하지 않았다 :

$('a').click(function() { 
    alert(person.($(this).attr('id')).gender); 
}); 

나는 "잡히지 않는 예외 : 구문 오류, 인식 할 수없는 표현"입니다. 분명히, 내 구문은 벗어났다.

이미 많은 게시물을 읽었지만 해결책을 찾을 수 없습니다. 어떤 아이디어?

+0

감사들, 당신은 모든 맞아요! 감사합니다. – bobsoap

+0

첫 번째 예는 잘못된 위치에 첫 번째 닫는 중괄호를 넣었 기 때문에 작동하지 않았습니다. 'person [$ (this) .attr ('id')] [ 'gender']' – seanmonstar

답변

3

alert(person[$(this).attr('id')].gender)을 시도, 올바른 구문은 배열과 같은 괄호를 사용하는 것입니다.

alert(person[$(this).attr('id')].gender); 

아니면 그냥 수 있습니다 별도의 변수에 해당 ID를 끌어 청소기 보이는 :

var id = $(this).attr('id'); 
alert(person[id].gender); 

귀하의 전화 :

+0

멋진 :) 감사합니다. 나는 그것이 내 구문이라는 것을 알고 있었다. – bobsoap

3

시도 :

$('a').click(function() { 
    alert(person[$(this).attr('id')]['gender']); 
}); 

당신은 잘못된 장소에 대괄호가 있었다.

2

은 당신이 가고있는 것처럼 동적 이름을 가진 속성에 액세스하려면