2012-05-14 380 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

相关问题