[英]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.