function resetIndex(tr) { var index = tr.getElementsByTagName("td")[0].innerHTML; var next = tr.nextSibling if(!next) return false; var ipts = next.getElementsByTagName("input"); for(var i =0; i < ipts.length; i ++) { name = ipts[i].name; name = name.replace(/\d+/,parseInt(index)-1); ipts[i].name = name; } resetIndex(next); }
frame框架内的超链接全部变成打开新窗口了,原来不是。 不知道是不是用了这段代码的原因?另外 var ipts = next.getElementsByTagName("input"); 只能取input的元素, select是要再写一个吗? var sels = next.getElementsByTagName("select");
测试发现for循环这段脚本有问题,导致frame框架的链接打开新窗口for(var i =0; i < ipts.length; i ++) { name = ipts[i].name; name = name.replace(/\d+/,parseInt(index)-1); ipts[i].name = name; }
$("#BtDel").click(function () {
$("#tb tr:gt(0)").each(function () {
if ($(this).find("#CK").get(0).checked == true) {
$(this).remove();
}
});
i = 1;
$("#tb tr:gt(0)").each(function (i) {
$(this).html($(this).html().replace(/\d/g,i+1));
});
$("#CKA").attr("checked", false);
});删除的时候循环便利一下 ,把所有的数字都替换成行数 .
ps :你这里应该是用gt(0) 。大于第一行 。
zell419 可能我没说明白,第二行开始只要修改 <INPUT class="INPUT" TYPE="text" NAME="qq"> 中 NAME="qq"就可以了 按照qq1 , qq2 ,qq3 这样排序下去
反正就是在单击删除的时候 对行遍历 ,重新组织下 。
//隐藏模板tr
//$("#tb tr").eq(2).hide();
var i = 1;
$("#BtAdd").click(function () {
//复制一行
var tr = $("#tb tr").eq(1).clone();
tr.find("td").get(0).innerHTML = ++i;
var inputs = tr.get(0).getElementsByTagName("input");
for(var j = 0 ; j < inputs.length; j ++)
{
inputs[j].name = inputs[j].name+(i-1)
alert(inputs[j].name);
}
tr.show();
tr.appendTo("#tb");
});
$("#BtDel").click(function () {
$("#tb tr:gt(1)").each(function () {
if ($(this).find("#CK").get(0).checked == true) {
resetIndex(this)
$(this).remove();
}
});
i = 1;
$("#tb tr:gt(1)").each(function () {
$(this).find("td").get(0).innerHTML = ++i;
});
$("#CKA").attr("checked", false);
});
$("#CKA").click(function () {
$("#tb tr:gt(1)").each(function () {
$(this).find("#CK").get(0).checked = $("#CKA").get(0).checked;
});
});
})
function resetIndex(tr)
{
var index = tr.getElementsByTagName("td")[0].innerHTML;
var next = tr.nextSibling
if(!next) return false;
var ipts = next.getElementsByTagName("input");
for(var i =0; i < ipts.length; i ++)
{
name = ipts[i].name;
name = name.replace(/\d+/,parseInt(index)-1);
ipts[i].name = name;
}
resetIndex(next);
}
喔!哈哈 这才是我想要的结果。
aspwebchh 测试还有点小问题,所有超链接都变成打开新窗口了,这是那句代码有问题呢?
frame框架内的超链接全部变成打开新窗口了,原来不是。
不知道是不是用了这段代码的原因?另外 var ipts = next.getElementsByTagName("input");
只能取input的元素,
select是要再写一个吗? var sels = next.getElementsByTagName("select");
测试发现for循环这段脚本有问题,导致frame框架的链接打开新窗口for(var i =0; i < ipts.length; i ++)
{
name = ipts[i].name;
name = name.replace(/\d+/,parseInt(index)-1);
ipts[i].name = name;
}