2013-09-28 151 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> 
相關問題