使用变量的Href属性不起作用

时间:2012-06-14 16:38:05

标签: javascript variables href alert

在JS中,我正在创建一个href属性运行函数的链接。函数simple打开一个带有给定变量的警报窗口。

function alerter(str){
    alert(str);
}

创建链接时,我使用以下代码。

var link = document.createElement('a');
link.setAttribute('href','javascript:alerter("hi")');
link.innerHTML = "Sauce";

如果我这样做,它就有效。但是,我想要做的是警告先前定义的变量。但是当我使用

link.setAttribute('href','javascript:alerter(myvar)');

弹出窗口不再有效。另外,有没有办法简单地在href中嵌入警报而不是编写单独的函数?

5 个答案:

答案 0 :(得分:1)

应该是

link.setAttribute('href','javascript:alerter("' + myvar + '")');

您正在使用字符串连接将myvar放入该字符串中。你有它的方式,整个事情是一个字符串“javascript:alerter(myvar)”

答案 1 :(得分:0)

试试这个

link.setAttribute('href','javascript:alerter('+myvar+')');

答案 2 :(得分:0)

http://jsfiddle.net/xmBbw/2/

只需修改锚点的onclick事件即可。如果您不打算在任何地方进行链接,则无需使用href属性。而是使用onclick并分配您喜欢的任何功能。此外,在html标签内编写javascript是非常糟糕的做法。请don't

A nice article regarding good practices

答案 3 :(得分:0)

myvar变量必须位于全局范围内。请确保您也可以window.myvar访问它。

答案 4 :(得分:0)

使用第一个问题:

link.setAttribute('href','javascript:alerter(' + somevar + ')');

使用第二个问题:

link.setAttribute('href','javascript:alert(' + somevar + ')');

欢呼声。