如何将局部变量值从一个函数传递到另一个函数?

时间:2012-05-14 13:50:54

标签: javascript function variables

在我的脚本中,我有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";
}

2 个答案:

答案 0 :(得分:1)

一般来说你可以这样写:

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

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

这会提醒“你好”。

答案 1 :(得分: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