带appendChild到前面-不能使用文本字段(JavaScript)

带appendChild到前面-不能使用文本字段(JavaScript),javascript,Javascript,我想使用appendChild在一个简单的web应用程序中把div元素放在前面。我监听click或mousedown,我已经尝试了这两种方法,然后将单击的内容重新发送到主div容器。像这样: JavaScript 但是,当我在Firefox中尝试此操作时,div元素中的文本字段变得不可选择。不能将标记放在文本字段中。它可以在Chrome中使用,但不能在Firefox中使用。这可能是什么原因造成的?我如何修复它 目前,由于这个问题,我对z索引使用了不同的方法。但我更喜欢使用appendChild,

我想使用appendChild在一个简单的web应用程序中把div元素放在前面。我监听click或mousedown,我已经尝试了这两种方法,然后将单击的内容重新发送到主div容器。像这样:

JavaScript

但是,当我在Firefox中尝试此操作时,div元素中的文本字段变得不可选择。不能将标记放在文本字段中。它可以在Chrome中使用,但不能在Firefox中使用。这可能是什么原因造成的?我如何修复它

目前,由于这个问题,我对z索引使用了不同的方法。但我更喜欢使用appendChild,因为它还有其他优点


提前感谢。

这是appendChild临时从DOM中删除包含已单击元素的子元素的直接结果,包括在单击以选择文本或在文本输入字段中放置插入符号/焦点时,在div子元素的末尾重新追加它,但文本选择现在已消失

一个简单的解决方法是将单击的子对象留在DOM中,但将其下面的同级对象上移,直到单击的子对象是最后一个子对象

document.querySelectorcontainer.addEventListenerclick,functionevent{ var发现, children=this.children; 对于变量i=0;i演示:

我第一次看到有人用I++=1而不是I++。你能为这个问题创建一个简单的演示吗?是的,但今晚不行=我明天做。
document.querySelector("#container").addEventListener("click", function(event) {

    for (var i = 0; i < this.children.length; i += 1) {

        if (this.children[i].contains(event.target)) {

            this.appendChild(this.children[i]);
        }
    }
});