我想在将父元素添加到DOM之后,将表单预先添加到页面上的元素。当我过早地预定时,即父元素还不存在,但我会得到一个奇怪的少数。
jQuery(".myDiv").prepend('<div id="myForm">Content</div>');
如果我在使用jQuery甚至与这样的JS之后查看预元素的存在:
var res = document.getElementById("myForm")
console.log(res);
我在控制台中获得预元元素。但是,如果父元素尚不存在,则页面上没有出现预处元素,如果我稍后检查同一元素:
:setTimeout(function() {
var res = document.getElementById("myForm")
console.log(res);
}, 1000);
然后我得到 null
循环循环后,当父元素finnaly添加到页面上,我的预元元素不会消失。
因此,看起来我预先添加的任何内容都将首先添加到DOM中,但是在发现父元素不存在后被DOM拒绝。但这是正常的beeavor吗?
它运行良好。
// 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>
我认为您正在添加项目后删除该物品。这是一个假设