2013-09-28 256 views
0
var testStr='World'; 
tUserBlock.setAttribute('onclick', 'javascript:alert("Hello" + testStr)'); 

这可能是一个愚蠢的问题,但我想向.setAttribute onclick事件添加一个变量,但我不太确定正确的语法是什么将该变量添加到报价中?上述警报不显示。如何在双引号字符串中添加一个变量

+0

不要使用SET属性来添加一个单击处理!坏坏坏。你应该使用[addEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener) – epascarello

回答

2
var testStr='World'; 
tUserBlock.setAttribute('onclick', 'javascript:alert("Hello '+testStr+'")'); 

但是,这是将点击事件绑定到元素的糟糕方式。相反,请查看element.addEventListener方法 - 这是绑定的首选方式。这有多种原因 - 其中一个原因是您不仅仅限于每种类型的一个事件(因为您使用的是当前方法)。另一个原因是它使代码不在你的标记中。

+0

啊,我明白了,谢谢。我也会研究addEventListener。 – dlofrodloh

1

这是结合事件的正确方法(无需使用setAttribute):

var testStr='World'; 
tUserBlock.onclick = function() { alert("Hello" + testStr) }; 

如果你仍然坚持自己原有的方式,这是做它的方式:

var testStr='World'; 
tUserBlock.setAttribute('onclick', 'javascript:alert("Hello ' + testStr + '")'); 
0

试试这个。

var testStr='World'; 
tUserBlock.setAttribute('onclick', 'javascript:alert("Hello '+testStr+'")'); 

我希望这会帮助你。

0

这对我的作品,我没有改变任何东西:

<button class="tUserBlock">click me</button> 

<script> 
    var tUserBlock = document.querySelector('.tUserBlock'); 
    var testStr='World'; 
    tUserBlock.setAttribute('onclick', 'javascript:alert("Hello" + testStr)'); 
</script> 
相关问题