我希望在将父元素添加到DOM后立即将表单添加到页面上的元素。当我过早地提前,即父元素不存在但我得到一个奇怪的beheavor。
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);
然后我得到 null
在父元素finnaly添加到页面后循环执行此操作后,我的前置元素不会消失。
因此,看起来我先前添加到DOM中的任何内容,但在发现父元素不存在之后被DOM拒绝。但这是正常的事吗?
答案 0 :(得分:0)
它运作良好。
// 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);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="myDiv"></div>
&#13;
我认为您在添加项目后删除了该项目。这是一个假设