簡體   English   中英

如何將局部變量值從一個函數傳遞給另一個函數?

[英]How do I pass local variable value from one function to another?

在我的腳本中,我有2個功能。 第一個函數引用一個div元素,在div內創建一個段落元素,並將一些文本附加到該段落元素中; 在我的第二個函數中,是由附加到鏈接元素的onclick事件觸發的。 我希望單擊鏈接時將div中的文本更改為另一個文本。 我確實意識到有兩種方法可以實現此目的:

1)聲明全局變量並在我的第二個函數中使用它們; 2)將變量值從第一個函數傳遞到第二個函數,並從第二個函數操縱該值

但是問題是如何正確地將變量值從第一個函數傳遞給第二個函數:

這是代碼:

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

通常,您可以這樣寫:

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

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

這將提醒“你好”。

對於您正在做的事情,我將通過代碼注冊事件,以使傳遞變量變得更加容易。 我們想在事件處理函數中使用一個參數來將數據傳遞給它。

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的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM