2012-09-19 4 views
1

방문자가 폼에 입력 필드를 동적으로 추가 할 수있게 해주는 간단한 JavaScript 함수가 있습니다. 어떤 경우에는이 함수를 한 페이지에서 여러 번 호출해야하며 하나의 함수 만 만들고 필요한 매개 변수를 전달하여 단순화하려고합니다.함수 외부에서 변수 이름에 함수의 매개 변수로 액세스하려면?

필자가 필요로하는 입력을 추가/제거 할 수 있도록 작성중인 각 입력 범주마다 카운터가 있어야한다는 것이 핵심입니다. 여기에 지금까지있어 무엇 :

var assigneeCounter = 1; 
var uploadCounter = 1; 


function addInput(fieldlabel, inputclasses, inputCounterID, inputCounter){ 
    alert(inputCounter); 
} 

html로 다음과 같이이 함수가 호출 :

<a href="javascript:addInput('Assignee','required-text', 'assignees', 'assigneeCounter');">Add Another Assignee</a> 
<a href="javascript:addInput('File Uploads','', 'uploads', 'uploadCounter');">Add Another File Upload</a> 

내 목표는 관련 특정 변수에 대한 함수 호출 모양을 가지고있다 (예 : 양수인의 입력에 대한 assigneeCounter, 업로드에 대한 UploadCounter 등). 그러나 변수에 경고 할 때 "1"대신 "assigneeCounter"를 씁니다.

저는 여기에 변수 범위에 대한 근본적인 것을 놓친 것 같아요. JavaScript 전문가가 아니기 때문에 내가 누군지 물어볼 것입니다.

미리 감사드립니다.

답변

1

당신은 이런 식으로 액세스 할 수 있습니다

alert(window[inputCounter]); 
+0

와우, 나는 자바 스크립트에 관해서 정말로 잭이 없다. 나는 창문을 한번도 사용 해본 적이 없다 ... 챔피언처럼 일했다! –

1

예. 이 변수는 전역 범위에있는 경우, 당신은 window 객체를 통해 액세스 할 수 있습니다 :

window[inputCounter]; 

이 작동하는 방법에 대한 자세한 내용은 Use dynamic variable names in JavaScript를 참조하십시오.

+0

그 링크를 이용해 주셔서 감사합니다. JS에 대해 더 많이 읽으 실 수 있습니다. –