2012-05-14 7 views
2

제 스크립트에는 2 가지 기능이 있습니다. 첫 번째 함수는 div 요소를 참조하고 div 안에 단락 요소를 만들고이 단락 요소에 텍스트를 추가합니다. 두 번째 함수는 link 요소에 연결된 onclick 이벤트에 의해 트리거됩니다. 링크를 클릭 할 때 div의 텍스트를 다른 텍스트로 변경하고 싶습니다. 나는 이것을 달성하는 2 가지 옵션이 있다는 것을 알고있다.하나의 함수에서 다른 함수로 로컬 변수 값을 전달하는 방법은 무엇입니까?

1) 전역 변수를 선언하고 두 번째 함수에서 사용한다. 2) 두 번째 기능에 첫 번째 함수에서 변수 값을 전달하고 두 번째 기능

에서이 값을 manipulkate하지만 문제는 내가 제대로 두 번째 함수에 첫 번째 함수에서 변수 값을 전달하는 방법입니다 :

<a href=''onclick='change();return false;'>Change</a> 
<div id='box'></div> 

자바 스크립트 : 당신이 쓸 수 일반적으로

window.onload= function createEl(){ 
    var el = document.createElement('p'); 
    var x = document.getElementById('box'); 
    var text = 'text'; 

    el.appendChild(document.createTextNode(text)); 
    x.appendChild(el); 
} 

function change(){ 
    x.innerHTML="other text"; 
} 

답변

1

: 다음 코드는

function one(){ 
    var var1 = "hello"; 
    two(var1); 
} 

function two(x){ 
    alert(x); 
} 

"hello"가 표시됩니다.

0

당신이하고있는 일을 위해 변수를 쉽게 전달할 수 있도록 코드를 통해 내 이벤트를 등록합니다. 이벤트 처리 함수에서 인수를 사용하여 데이터를 전달합니다.

window.onload = function() 
{ 
    // do your normal stuff with creating elements 
    var anc = document.getElementById('ID of your a element here'); 
    if(anc.attachEvent) 
    { 
     //code for ancient IE 
     anc.attachEvent('onclick', function(){change(x);}); 
    } 
    else if(anc.addEventListener) 
    { 
     //code for modern browsers 
     anc.addEventListener('click', function(){change(x);}); 
    } 
} 
function change(elem) 
{ 
    elem.innerHTML='other text'; 
} 

블록 위의 경우에서 볼 수 있듯이 IE의 이전 버전, 또는 addEventListener를 인식하고 대신는 attachEvent를 사용하지 않는 점에 유의 마십시오. addEventListener에 대한 내용은 documentation입니다.

관련 문제