关于函数传递变量参数


function test(a,b,c){ alert(a); alert(b); alert(c); } function add(){ var aa="你好"; var bb="我很好"; var cc="那就好"; var dd; dd="<a href='javascript:test(aa,bb,cc);void(0);'>here</a>";//这行不行 document.getElementById("p").innerHTML=dd; }


hello add();

请问,我想建立一个超级链接,触发javascript函数test,其中参数为 变量aa,bb,cc,这里变量怎么写才能正确传递给a标签的href属性
[b]问题补充:[/b]
回复对酒当歌:你说的那办法我发帖之前就试了啊,不行的。。。。。
[b]问题补充:[/b]
回复:Rowen,如果不适用全局变量怎么实现啊?
回复:badgril 如果我把变量放在hidden里,点击页面上的超级链接时,函数怎么判断取那个hidden呢,我页面中有很多一样的超级链接,原先设想是通过参数来判断的。我是做一个播放页面,左边是播放列表,右边是播放器,点超级链接,触发javascript改变播放器文件的地址
[b]问题补充:[/b]
回复smalljeff
我的超级链接是动态生成的啊,每次查询一页,ajax分页
[b]问题补充:[/b]
回复Rowen:谢谢你啊,我昨天后来问了别人实现了,使用转义字符,一开始我也想到用转义字符,但没成功,后来别人加了空格就行了。具体代码如下

function test(a,b,c){ alert(a); alert(b); alert(c); } function add(){ var aa="你好"; var bb="我很好"; var cc="那就好"; var dd; dd="<a href='javascript:test(\"" +aa + "\",\"" + bb + "\",\"" + cc + "\");void(0);'>here</a>";//这行 document.getElementById("p").innerHTML=dd; }


hello add();

你说的方法一会我会再去试试的,谢谢大家了,只能选一个采纳答案,要不真想把你们都选上

7个回答

你这个链接是由test()方法调用add()方法里的变量aa,bb,cc,如果这样的话..你可以参考下面这样的方法,不过我没试通,看你的了,函数也是对象,下面cl是作为对象
function cl(){

age = 12;//private property

}   

var c =new cl();
c.age;//访问你要的属性.
不过如果把你上在的代码去掉var了是行的通的,不过这样也算全局的吧
[code="java"]function add(){
aa="你好";
bb="我很好";
cc="那就好";
var dd;
dd="here";//这行不行

document.getElementById("p").innerHTML=dd;
}
[/code]

[code="java"]dd="here";//这行不行 [/code]

[quote]dd="here";//这行不行

[/quote]

少了单引号。不好意思

[code="java"]dd="here";//这行不行[/code]

这样可以了。

改成我这样就行了(aa,bb,cc在外面定义),这样就能实现你的功能
var aa="你好";
var bb="我很好";
var cc="那就好";
function test(a,b,c){
alert(a);
alert(b);
alert(c);
}
function add(){
var dd;
dd="here";//这行不行

document.getElementById("p").innerHTML=dd;
}

可以把add函数里面的AA,BB,CC改为全局的,这样TEST函数也可以得到;

如果非要传值到TEST的话就在BODY里面建三个HIDDEN ,把ADD里面的三个值分别赋给三个HIDDEN,这样不就可以把值传给TEST了嘛

超链接一定要动态生成吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!