我创建了一个独立的示例来找出为什么它只在 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/