2015-04-06 49 views
1

这是添加行的函数的一部分。它的作用就像一个魅力,除了我还希望它为每个新创建的元素集的ID名称添加一个整数(+1)。在动态添加的行中添加计数器到ID名称

例如,下面的代码会生成一行,一个单元格和一个按钮。如果创建了三行,那么我希望每行的按钮ID分别为foo1,foo2,foo3

我该如何去做到这一点?

function addrow() { 
var i = 1; 
var table = document.getElementById("mytable"); 
var row = table.insertRow(1); 
var cell1 = row.insertCell(1); 
cell1.innerHTML = "<input type='button' id='foo+i' value='Hello'>"; 
i++;} 

预先感谢您!

+1

'cell1.innerHTML = “”;' – 2015-04-06 01:49:53

+0

使用'VAR I = 1 ;函数addrow(){.... cell1.innerHTML =“”;我++; }' – 2015-04-06 01:49:58

+0

优秀的答案,我会更新我的结构,并在函数之外全局声明我的变量。非常感谢你。 – goforit 2015-04-06 03:48:12

回答

0

变化:

cell1.innerHTML = "<input type='button' id='foo+i' value='Hello'>"; 

到:

cell1.innerHTML = "<input type='button' id='foo" + i + "' value='Hello'>"; 
0

你需要与你的递增变量Concat的字符串,而不是把它里面的字符串。

"<input type='button' id=foo" + i +" value='Hello'>" 

但是,还有更多你需要做的...... 你需要让你的i变量是全球性的,因此不会被重置每次调用这个函数像这样

var i = 1; 
function addrow() { 
    var table = document.getElementById("mytable"), 
     row = table.insertRow(i), 
     cell1 = row.insertCell(i); 
    cell1.innerHTML = '<input type="button" id=foo' + i + ' value="Hello">'; 
    i++; 
} 

我周围也改变了引号,因为单引号不被认为是对HTML

有效语法
0

变化

cell1.innerHTML = "<input type='button' id='foo+i' value='Hello'>"; 

cell1.innerHTML = "<input type='button' id='foo"+ i +"' value='Hello'>"; 

和初始化i值作为全局变量。

使用

var i = 1; 
function addrow() { 
    var table = document.getElementById("mytable"); 
    var row = table.insertRow(1); 
    var cell1 = row.insertCell(1); 
    cell1.innerHTML = "<input type='button' id='foo"+i +"' value='Hello'>"; 
    i++; 
} 
+0

进入[这里](http://chat.stackoverflow。 com/rooms/74676/fun-talk):) – 2015-04-08 03:06:01