var testStr='World';
tUserBlock.setAttribute('onclick', 'javascript:alert("Hello" + testStr)');
這可能是一個愚蠢的問題,但我想向.setAttribute onclick事件添加一個變量,但我不太確定正確的語法是什麼將該變量添加到報價中?上述警報不顯示。如何在雙引號字符串中添加一個變量
var testStr='World';
tUserBlock.setAttribute('onclick', 'javascript:alert("Hello" + testStr)');
這可能是一個愚蠢的問題,但我想向.setAttribute onclick事件添加一個變量,但我不太確定正確的語法是什麼將該變量添加到報價中?上述警報不顯示。如何在雙引號字符串中添加一個變量
var testStr='World';
tUserBlock.setAttribute('onclick', 'javascript:alert("Hello '+testStr+'")');
但是,這是將點擊事件綁定到元素的糟糕方式。相反,請查看element.addEventListener
方法 - 這是綁定的首選方式。這有多種原因 - 其中一個原因是您不僅僅限於每種類型的一個事件(因爲您使用的是當前方法)。另一個原因是它使代碼不在你的標記中。
啊,我明白了,謝謝。我也會研究addEventListener。 – dlofrodloh
這是結合事件的正確方法(無需使用setAttribute
):
var testStr='World';
tUserBlock.onclick = function() { alert("Hello" + testStr) };
如果你仍然堅持自己原有的方式,這是做它的方式:
var testStr='World';
tUserBlock.setAttribute('onclick', 'javascript:alert("Hello ' + testStr + '")');
試試這個。
var testStr='World';
tUserBlock.setAttribute('onclick', 'javascript:alert("Hello '+testStr+'")');
我希望這會幫助你。
這對我的作品,我沒有改變任何東西:
<button class="tUserBlock">click me</button>
<script>
var tUserBlock = document.querySelector('.tUserBlock');
var testStr='World';
tUserBlock.setAttribute('onclick', 'javascript:alert("Hello" + testStr)');
</script>
不要使用SET屬性來添加一個單擊處理!壞壞壞。你應該使用[addEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener) – epascarello