0

このコードを実行しようとすると、IE からエラー (エラー: この操作のターゲット要素が無効です) が表示されます。

var d1 = document.getElementById( name + '-body');
d1.insertAdjacentHTML('beforeend', html );

ここに関数全体を配置する必要はありませんが、ユーザーがボタンをクリックしたときにテキスト入力を動的に追加することがポイントです。少し検索したところ、insertAdjacentHTML がテーブル内で正しく機能しないという多くのステートメントが見つかりました。これは、私が行う必要があることです。

これに対する回避策はありますか?

編集:ここに私が挿入しようとしているhtmlがあります。必要に応じて、生成された HTML を Chrome から投稿することもできます。

    "<tr id=\"node-" + counter + "\">
       <td>
         <textarea onclick=\"Common.removeInstructions(id)\" name=\"on\" id=\"action-" + counter + "\" wrap=\"soft\" cols=\"35\" rows=\"4\" style=\"resize: none; overflow: hidden;\">
        Please limit responses to 150 characters.  Blank fields will be ignored.
        </textarea>
      </td>
      <td>
  <input classname=\"TextInput\" id=\"actionDate-" + counter + "\" newline=\"1\" style=\"width: 100px;\" class=\"TextInput\" assemblers=\"jaba.ui.input.TextInput\" jaba-pagerowindex=\"1\"/>
      </td>
    </tr>"
4

2 に答える 2

2

IE では、テーブルの行/セルを動的に追加できないことがよくあります。

で追加したい行/セルを事前に作成し、必要に応じてそれらをdisplay:none変更することは、そのための便利な回避策です。innerHTMLdisplay

于 2012-05-17T21:41:43.247 に答える
0

Fabrício Matté を回答として追加して、受け入れることができるようにします。

生成された HTML と何をしようとしているのかを示していただけると、返信がはるかに簡単になります。とにかく、私は前に IE のテーブルに行/セルを挿入する際に問題がありました。私の解決策は、テーブルの作成時に display:none を使用して行/セルを事前に作成し、その表示と共に の innerHTML を変更することでした。

于 2012-05-17T16:30:35.297 に答える