喵喵時光機
2018-09-15 10:24:58
昨天同事寫JS代碼遇到一個問題,就是有一個HTML中的元素,這里用<div id="zz"></div>代替那個元素。這一個元素,已經(jīng)在頁面里呈現(xiàn)了出來。但是無論是用document.getElementById("zz")還是jQuery中的$("#zz")方法都不能取到,在JS下和jQuery下分別返回null和[],但是在審查元素過后,兩種辦法就都能取到了,特別奇怪。這是什么原因造成的?。恐挥惺謩訉彶樵夭拍苋〉皆?,不審查就在DOM上沒有。(不管怎么刷新都沒用,還是得審查才能找到元素)PS:瀏覽器是較新版的chrome,因為是同事寫的代碼,現(xiàn)在已經(jīng)刪了換處理方式了,所以沒法貼出來,希望有遇到過同樣問題的大神能夠指導(dǎo)一下。補充:這個元素是iframe中的元素。
1 回答

慕虎7371278
TA貢獻(xiàn)1802條經(jīng)驗 獲得超4個贊
如果JavaScript代碼在html里的head中引入;
獲取DOM節(jié)點,需要在DOM結(jié)構(gòu)加載完成才可以獲取到;
/*jQuery方法*/
$(function() {
var $div = $('#zz');
console.log($div)
});
/*JavaScript原生方法*/
window.onload = function () {
var obj = document.getElementById('zz');
console.log(obj);
console.log('DOM加載完畢')
};
/*建議使用*/
document.addEventListener('DOMContentLoaded', function(event) {
var obj = document.getElementById('zz');
console.log(obj);
console.log('DOM加載完畢')
});
添加回答
舉報
0/150
提交
取消