myhyli() 说得不错, name 不是可以随便更改的, 你若是真想改那先 removeNode 原来的对象, 然后再createElement 新的对象替换老的.
function deleteRow(objTD) { var objTR =objTD.parentElement; var objTable = objTR.parentElement; var currRowIndex = objTR.rowIndex if (currRowIndex>0){ objTable.deleteRow(currRowIndex); currRowIndex = 0; } alert(objTable.rows.length) for (var i=1;i<objTable.rows.length;i++){ var nn=objTable.rows(i).cells(2).all(0).name nn="GoodsCode"+i alert(nn) } }
TO: bdhh(Silent) ( )你说的没错,微软的解释也和你一致:This property is accessible at run time as of Microsoft Internet Explorer 5. Removing elements at run time, before the closing tag has been parsed, can prevent other areas of the document from rendering.
var objTR =objTD.parentElement;
var objTable = objTR.parentElement;
var currRowIndex = objTR.rowIndex
if (currRowIndex>0){
objTable.deleteRow(currRowIndex);
currRowIndex = 0;
}
alert(objTable.rows.length)
for (var i=1;i<objTable.rows.length;i++){
var nn=objTable.rows(i).cells(2).all(0).name
nn="GoodsCode"+i
alert(nn)
}
}
谁说“name”不可以改变?????!!!!别误导人!!!!!!!!!!!!!尽管看看下面的程序吧:<script>
function trychange(obj){
var outhtml=obj.outerHTML;
var objname=obj.name;
outhtml=outhtml.replace("name="+objname,"name=r2");
outhtml=outhtml.replace(" CHECKED","");
obj.outerHTML=outhtml;
}
</script><input type="radio" name='R1' value="radiobutton" onDblClick="trychange(this)">
<input type="radio" name='R1' value="radiobutton" onDblClick="trychange(this)">
<input type="radio" name='R1' value="radiobutton" onDblClick="trychange(this)">
<input type="radio" name='R1' value="radiobutton" onDblClick="trychange(this)"><input name=showcode size=200><input type=button value=show onclick=document.all.showcode.value=document.body.innerHTML;>
如同一个人一样,你要改一个名字并不必要把你先“销毁”掉,再让你妈生另一个“你”出来。也如同IP地址和域名的关系一样,同一个IP你可以给它不同的域名,同理同一个窗体所申请的入口地址也可以用不同的名字来访问它。很明显网页上的任何表单,你都可以给它设定ID和Name两个属性,它们都可以找到指定的表单,你甚至也可以用tagName、tagType等来找到这个表单。可见ID和Name都不是唯一可用于访问表单的东西,因此就不可能不能改变。如果你有足够权限的话,你甚至可以改变这些窗体、表单的引用入口地址,别说一个Name了。
实际情况是对outerHTML的修改实际上在页面上创建了一个新的对象,而不是对原来对象进行修改,下面代码可以证明<script language=javascript>
function trychange(){
var obj = text1; alert(text1 == obj);
obj.outerHTML = obj.outerHTML;
alert(text1 == obj);
}
</script><INPUT type="button" value="Button" onclick="trychange();">
<INPUT type="text" id="text1" name="text1">
TO: bdhh(Silent) ( )你说的没错,微软的解释也和你一致:This property is accessible at run time as of Microsoft Internet Explorer 5. Removing elements at run time, before the closing tag has been parsed, can prevent other areas of the document from rendering.
<script language="javascript" type="text/javascript">
function deleteRow(objTD) {
var objTR =objTD.parentElement;
var objTable = objTR.parentElement;
var currRowIndex = objTR.rowIndex
objTable.deleteRow(currRowIndex);
for (var i=1;i<objTable.rows.length;i++){
objTable.rows(i).cells(2).innerText="textfield"+i
objTable.rows(i).cells(0).all(0).name="textfield"+i
alert(objTable.rows(i).cells(0).all(0).name)
}
}
</script>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
<td onClick="javascript:deleteRow(this)"> </td>
<td> </td>
</tr>
<tr>
<td><input name="textfield1" type="text" value="textfield1"></td>
<td onClick="javascript:deleteRow(this)"><input type="button" value="删除此列" >
</td>
<td>textfield1</td>
</tr>
<tr>
<td><input name="textfield2" type="text" value="textfield2"></td>
<td onClick="javascript:deleteRow(this)"><input type="button" value="删除此列" ></td>
<td>textfield2</td>
</tr>
<tr>
<td><input name="textfield3" type="text" value="textfield3"></td>
<td onClick="javascript:deleteRow(this)"><input type="button" value="删除此列" ></td>
<td>textfield3</td>
</tr>
<tr>
<td><input name="textfield4" type="text" value="textfield4"></td>
<td onClick="javascript:deleteRow(this)"><input type="button" value="删除此列" ></td>
<td>textfield4</td>
</tr>
<tr>
<td><input name="textfield5" type="text" value="textfield5"></td>
<td onClick="javascript:deleteRow(this)"><input type="button" value="删除此列" ></td>
<td>textfield5</td>
</tr>
<tr>
<td><input name="textfield6" type="text" value="textfield6"></td>
<td onClick="javascript:deleteRow(this)"><input type="button" value="删除此列" ></td>
<td>textfield6</td>
</tr>
</table>