单击JavaScript中的按钮动态更改属性名称

时间:2009-05-18 04:46:44

标签: javascript

我在点击添加按钮时在表格中添加行。

每行包含名称,类,年份文本框。

对于第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

我该怎么做?

2 个答案:

答案 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);
}
相关问题