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

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

本文关键字:函数 一个 另一个 局部 变量值      更新时间:2023-09-26

在我的脚本中,我有 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 的文档。