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

慕虎7371278
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果JavaScript代碼在html里的head中引入;
獲取DOM節(jié)點(diǎn),需要在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加載完畢')
});
添加回答
舉報(bào)
0/150
提交
取消