如何将局部变量值从一个函数传递到另一个函数
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 的文档。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么