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 - 固定定位元素随页面滚动,直到在 Firefox 移动版中完成滚动

ipad - iPad 上移动 safari 的 -webkit-transform 的缩放问题

c# - 安全问题 - Web 浏览器控件作为 UI 和包含在客户端应用程序中的所有逻辑

javascript - 类型错误 : Cannot read property 'datasets' of undefined - Angular Chart

javascript - firefox 中用于特定任务的自定义按钮

jQuery 选择文本节点并删除其内容

jquery - Sharepoint Angular REST 添加项目产量 400(错误请求)

firefox - Firefox 无法识别 WebP MIME 类型

javascript - $ ('html body' ).animate({ scrollTop : not working in Firefox

javascript - Webkit 转换不起作用,我该怎么办