2

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

2 回答 2

1

一般来说,你可以这样写:

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

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

这将提醒“你好”。

于 2012-05-14T13:54:49.197 回答
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 的文档

于 2012-05-14T14:05:44.430 回答