jquery - 为什么这只能在 Firefox 中使用?

标签 jquery firefox webkit

我创建了一个独立的示例来找出为什么它只在 Firefox 中工作:

var ul = jQuery('<ul></ul>');

jQuery(selector).children().each(function() {
   var li = jQuery('<li></li>');
   var label = '<label for="' + this.id + '">' + this.name + '</label>';
   li.append(label);
   li.append(this);
   ul.append(li);
});

任何 webkit 浏览器甚至 IE 都会在这一行失败:

li.append(this);

这是一个 HTMLInputElement。有什么想法吗?

谢谢, 皮特

最佳答案

问题是,“this”是一个已经位于某个地方的 DOM 节点。如果不先删除或复制它们,您就无法移动已经位于某处的 DOM 节点。

如果你想:

  • 移动它,你必须这样做

    li.append($(this).remove())

  • 复制它,你就可以了

    li.append($(this).clone(true))

事实上,我很困惑,它应该在 FF 中工作。如果是这样,那就是 FF 错误。

干杯,

关于jquery - 为什么这只能在 Firefox 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1009610/

相关文章:

javascript - JQuery div.show() 正在调整我的字段大小

c# - WebMethod 异步结果显示对象

javascript - firefox 上的关键代码

html - Firefox 数字宽度/间隔

javascript - localStorage 和 'file:' 协议(protocol)不持久,SQLite 给出 SECURITY_ERR

android - 如何将列表项内的跨度居中

css - Webkit 取消反转 invert() 图像?

ASP.NET 和 jQuery AJAX - 奇怪的问题

javascript - JQuery:级联下拉列表在按下后退按钮时丢失值

css - Firefox 在 v33 上相当于 chrome 的 video::-webkit-media-controls-fullscreen-button 选择器