我在点击添加按钮时在表格中添加行。
每行包含名称,类,年份文本框。
对于第1行,属性名称为...... name_1,class_1,year_1 对于第2行,属性名称为...... name_2,class_2,year_2。
如果我删除第一行(name_1,class_1,year_1),第二行的属性名称应该变为
name_2,class_2,year_2 <==> name_1,class_1,year_1
我该怎么做?
答案 0 :(得分:0)
我不打算在客户端这样做。在服务器端代码中,只需检查POST数组中是否存在密钥。
如果您仍想重命名元素:
var f = document.myForm;
var removeThisOne = 3;
var current = removeThisOne + 1;
while (f['name_' + current]) {
f['name_' + current].name = 'name_' + (current - 1);
f['class_' + current].name = 'class_' + (current - 1);
// etc
++current;
}
答案 1 :(得分:0)
你可以做这样的事情(未经测试,应该非常有用......)
需要'delegate'内部方法来维护行的范围。
设置:
var table = document.createElement('table');
var tbody = document.createElement('tbody');
table.appendChild(tbody);
document.appendChild(table); // or wherever you want it.
添加行:
function clickHandler( row )
{
function delegate()
{
tbody.removeChild(row);
}
return delegate;
}
for (var i in someObj)
{
var row = document.createElement('tr')
var td1 = document.createElement('td');
var td2 = etc...
td1.innerHTML = someObj[i].field1;
row.appendChild(td);
td2 = etc...
var del = document.createElement("input");
input.type="button";
input.value = "delete";
input.onclick = clickHandler(row);
tdX.appendChild(del);
tbody.appendChild(row);
}