0

尝试执行此代码时,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>"
4

2 回答 2

2

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

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

于 2012-05-17T21:41:43.247 回答
0

添加 Fabrício Matté 作为答案,以便我接受。

如果您向我们展示生成的 HTML 以及您正在尝试做什么,回复会容易得多。无论如何,我之前在 IE 上的表格中插入行/单元格时遇到问题,我的解决方案是在创建表格时预先创建带有 display:none 的行/单元格,然后将 'sinnerHTML 连同它们的显示一起更改。

于 2012-05-17T16:30:35.297 回答