繁体   English   中英

jQuery .prepend到不存在的元素-是JS错误吗?

[英]jQuery .prepend to non-existent element - is it a JS bug?

在父元素添加到DOM之后,我想在页面上的元素之前添加表单。 当我准备得太早时,即父元素不存在,我就会感到奇怪。

jQuery(".myDiv").prepend('<div id="myForm">Content</div>');

如果我在使用jQuery甚至是JS之后检查prepent元素的存在,例如:

var res = document.getElementById("myForm")
console.log(res);

我在控制台中获得了prepend元素。 但是,如果父元素尚不存在,则页面上不会出现任何前置元素,并且如果一秒钟后我检查同一元素:

setTimeout(function() {
    var res = document.getElementById("myForm")
    console.log(res);
}, 1000);

然后我得到

当父元素最终添加到页面中后,我的前置元素不会消失。

因此,看起来像我先添加的东西先被添加到DOM中,然后在发现父元素不存在后被DOM拒绝。 但这是正常行为吗?

效果很好。

 // When div is present jQuery(".myDiv").prepend('<div id="myForm">Content</div>'); var res = document.getElementById("myForm") console.log('mydiv:',res); setTimeout(function() { var res = document.getElementById("myForm") console.log('mydiv:',res); }, 1000); // When div is not present jQuery(".noDiv").prepend('<div id="noForm">Content</div>'); var res = document.getElementById("noForm") console.log('noForm:',res); setTimeout(function() { var res = document.getElementById("noForm") console.log('noForm:',res); }, 1000); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="myDiv"></div> 

我认为您是在添加项目后删除该项目。 这是一个假设

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM