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