网页无法在IE9中工作(insertAdjacentHTML)

时间:2012-05-16 23:14:40

标签: javascript internet-explorer-9

IE在尝试执行此代码时给出了一个错误(错误:此操作的目标元素无效。):

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

无需将整个函数放在此处,重点是在用户单击按钮时动态添加一些文本输入。我做了一些搜索,发现很多语句insertAdjacentHTML在表中不起作用,这就是我需要它做的。

有解决方法吗?

编辑:这是我要插入的html。如果你愿意,我也可以从Chrome发布生成的html。

    "<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>"

2 个答案:

答案 0 :(得分:2)

IE通常不允许您动态添加表格行/单元格。

预先创建要添加display:none的行/单元格,然后在需要时更改其innerHTMLdisplay是一种有用的解决方法。

答案 1 :(得分:0)

添加FabrícioMatté作为答案,我可以接受它。

如果您向我们展示生成的HTML以及您尝试执行的操作,则回复会更容易。无论如何,我在IE上的表格中插入行/单元格时遇到了问题,我的解决方案是在创建表格时使用display:none预创建行/单元格,然后将innerHTML与其显示一起更改。