Javascript 将变量分配给innerHTML

Javascript 将变量分配给innerHTML,javascript,html,dynamic,Javascript,Html,Dynamic,首先,我不太喜欢JavaScript。我想使用JavaScript动态地构建一个包含TD元素的HTML表。这是我的代码,它不能正常工作 <script type="text/javascript"> function changed(num){ a1=num; a2=num+1; a3=num+2; for(var i=1;i<=3;i++){ document.getElementById("boxA"+i).innerHTML

首先,我不太喜欢JavaScript。我想使用JavaScript动态地构建一个包含TD元素的HTML表。这是我的代码,它不能正常工作

<script type="text/javascript">
function changed(num){
    a1=num;
    a2=num+1;
    a3=num+2;

    for(var i=1;i<=3;i++){
       document.getElementById("boxA"+i).innerHTML=eval('a'+i);
    }
}
</script>

函数已更改(num){
a1=num;
a2=num+1;
a3=num+2;

对于(var i=1;i,
+
运算符在向其提供
字符串
时将始终执行串联,而
值始终为:

console.log('1' + 1);
// '11'

console.log(1 + '1');
// '11'
您必须将
转换为
数字
,才能执行加法:

<... onChange="changed(parseFloat(this.value));">

这里有一个简单的方法

function changed(n){

  n = parseInt(n); // convert to integer
  if (!n) { return; } // end execution if not found (if not a number)

  for (var i = 1; i <= 3; i++) {

    // Since there is no HTML, textContent is better
    // eval is not needed (people often say eval is evil) ;)
    // using the i to increment
    document.getElementById('boxA' + i).textContent = n + i -1;
  }
}
功能已更改(n){
n=parseInt(n);//转换为整数
if(!n){return;}//如果找不到则结束执行(如果不是数字)

对于(var i=1;i,您会得到什么错误?+1,令人惊讶的是,数字类型的输入值也是一个字符串。
function changed(num){
    var a = {
        1: num,
        2: num + 1,
        3: num + 2
    };

    for(var i=1;i<=3;i++){
       document.getElementById("boxA"+i).innerHTML = a[i];
    }
}
function changed(n){

  n = parseInt(n); // convert to integer
  if (!n) { return; } // end execution if not found (if not a number)

  for (var i = 1; i <= 3; i++) {

    // Since there is no HTML, textContent is better
    // eval is not needed (people often say eval is evil) ;)
    // using the i to increment
    document.getElementById('boxA' + i).textContent = n + i -1;
  }
}