与多个变量连接的字符串未在setTimeout()中执行

时间:2015-02-22 04:42:19

标签: javascript html dom

使用单个变量连接的字符串在setTimeout()函数

中正确执行
setTimeout("document.getElementById('err_box').innerHTML = "+selected_troops.length, 1000);

但是当我在同一个字符串中加入多个变量时。它没有执行。

setTimeout("document.getElementById('err_box').innerHTML = "+selected_troops.length+" Men "+varues, 1000);

这也没有执行(“string”+ variable +“string”)

setTimeout("document.getElementById('err_box').innerHTML = "+selected_troops.length+" Men", 1000);

2 个答案:

答案 0 :(得分:1)

将函数传递给setTimeout(),而不是字符串:

setTimeout(function() {
  document.getElementById('err_box').innerHTML = 
    selected_troops.length+" Men";
}, 1000);

您的代码不起作用,因为您没有考虑到字符串常量需要"双引号"为了工作。但是,无论如何,这真的不是正确的方法;更容易避免将JavaScript代码放入JavaScript字符串中。

答案 1 :(得分:1)

理想情况下,你应该这样做,

setTimeout(function(){
     document.getElementById('err_box').innerHTML = selected_troops.length+" Men "+varues;
}, 1000);