2009-11-11 150 views
0

我想通过下面的函数GetDetail函数来传递变量。我可以传递字符串/数字,它可以正常工作。JavaScript函数传递变量

但我无法通过可变

detLink.onclick = new Function ("GetDetails()"); 
detLink.setAttribute('onclick',"javascript:GetDetails()") 

回答

0
detLink.setAttribute('onclick',"javascript:GetDetails("+yourVariableName+")") 

当您设置属性您使用字符串数据类型,因此你必须缝合函数名变量值

+0

FYI:http://webbugtrack.blogspot.com/2007/08 /bug-242-setattribute-doesnt-always-work.html – 2009-11-11 08:02:12

+0

不工作在IE中,而不是本地主机我使用IP地址,如果我写在警报中详细它不工作 – Ank 2009-11-11 12:19:25

5
detLink.onclick = function() { GetDetails (parameter1, parameter2, ...); } 

这是anonymous function

读也The function expression(函数运算符)

的函数表达式类似于并且具有相同语法为函数声明

function [name]([param] [, param] [..., param]) { 
    statements 
} 

名称 的函数名。可以省略,在这种情况下,函数变成 ,称为匿名函数。

param 要传递给函数的参数的名称。函数 最多有255个参数。

陈述 构成函数主体的陈述。

-2
var val1 = "Hell world" 
detLink.onclick = GetDetails(val1); 

function GetDetails(myVar){ 
    alert (myVar); 
} 
+2

这将无法正常工作,因为GetDetails将被称为期间声明,而不是点击后。 – jantimon 2009-11-11 07:57:28

0

如果你有机会到相关变量,当你设置的点击处理程序,

detLink.onclick = function() { 
    GetDetails(foo); 
} 

如果不这样做,

detLink.id = uniqueId; 
detLink.onclick = function() { 
    var foo = globalData[this.id]; 
    GetDetails(foo); 
} 

// somewhere else in your code, where you know the value of the variable 
globalData[detLink.id] = foo;