jQuery.html()插入输入字段在IE11中不起作用

时间:2018-06-18 17:23:41

标签: javascript jquery

我对jQuery的.html方法有疑问。我正在使用以下事件在双击时在表行中插入输入字段。在谷歌浏览器和Firefox中一切正常 - 但它在Internet Explorer 11中无法正常工作。

代码如下:

$(document).on('dblclick', '.myTable tbody tr td:not(:first-child)', function () {
  var originContent = this.innerText;
  $(this).html('<input type="text" value="' + originContent + '">')
  $(this).children().focus();
});

我也尝试使用以下方法插入输入字段:

$(this).html($('<input />', {
 type: "text",
 value: originContent
}));

但它不会奏效。 IE11控制台没有错误 - 它只是不替换innerHTML。但请注意:如果我尝试用一​​个数字或字符串替换调试会话中的内部html,如.html(1234)或.html(&#39; string&#39;),它可以工作。

我做错了什么?还有其他人注意到这样的问题吗?

1 个答案:

答案 0 :(得分:0)

我不知道为什么以及如何但显然 $(this).children()。focus(); 崩溃或阻止在IE中显示....

编辑:错误是由于我处理的错误事件而导致的。我的第一个事件在双击表行时反应 - 在追加html输入字段后,我将焦点更改为输入元素。

但是我的第二个事件处理程序应该对输入元素的焦点做出反应,但我错过了选择器中的输入。因此,每当我点击表格行时,我插入输入并将其删除重合。为什么它在Chrome中运行仍然很奇怪,猜它只知道我想要什么¯_(ツ)_ /¯