2

ここに私の問題の非常に単純化されたバージョンがあります:

私は何を持っていますか:

<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 の不明なランタイム エラーが発生します

4

2 に答える 2

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"/>';

これはクロスブラウザで動作します (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);

幸運を!!

于 2012-08-22T16:47:59.167 に答える