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



我想在将父元素添加到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>

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

相关内容

  • 没有找到相关文章

最新更新