2012-05-14 62 views
2

在我的腳本中,我有2個功能。第一個函數引用div元素,在div內創建一個段落元素並將一些文本附加到這個段落元素; 在我的第二個功能是由附加到鏈接元素的onclick事件觸發的。點擊鏈接時,我希望將div中的文本更改爲另一個文本。我意識到有2個選項如何實現這一點:如何將一個函數的局部變量值傳遞給另一個函數?

1)聲明全局變量並在我的第二個函數中使用它們; 2)從第一函數的變量值傳遞給所述第二功能,並從所述第二功能

manipulkate該值不過,問題是如何做我正確地從第一函數向第二函數傳遞變量值:

下面是代碼:

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

的Javascript:

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); 
} 

這會提醒「你好」。

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代替,如上面的if塊所示。以下是addEventListener的documentation

相關問題