这是我的问题的简化版本:
我有什么:
<td id='cell'><input name="elem_1_Name"/></td>
我想要什么:
<td id='cell'><input name="elem_1_Name"/><input name="elem_5_Name"/></td>
我尝试了什么:
var elem = document.getElementById("cell").lastChild.cloneNode(true);
然后:
elem.name = elem.name.replace("1","5");
或
elem.name = "elem_5_Name";
或
elem.setAttribute("name","elem_5_Name");
,最后
document.getElementById("cell").appendChild(elem);
调试时我得到了什么:
elem.name : "elem_5_Name"
!!但!!
document.getElementById("cell").innerHTML : <input name="elem_1_Name"/><input name="elem_1_Name"/>
当我尝试直接设置innerHTML时 - 我有IE未知的运行时错误
答案 0 :(得分:1)
document.getElementById("cell").innerHTML : <input name="elem_1_Name"/><input name="elem_1_Name"/>
应该是:
document.getElementById("cell").innerHTML='<input name="elem_1_Name"/><input name="elem_5_Name"/>';
这适用于crossbrowser(在IE6中测试过)。
正如Bergi指出的那样,下面的代码也应该有效(在IE6和FF12中测试) 它使用条件注释来定位microsoft的jscript(因此IE):
/*@cc_on @if (@_jscript)
var elem = document.createElement('<input name="elem_5_Name">');
@else */
var elem = document.createElement("input");
elem.name = "elem_5_Name";
/* @end @*/
document.getElementById("cell").appendChild(elem);
祝你好运!!
答案 1 :(得分:1)