當我把這個在我的app.js
:對象引用未定義的,但不是在控制檯
var titres = document.querySelectorAll('header ul li a')
console.log(titres)
它送我回去的:[]
,如果我把這個瀏覽器上的控制檯:
var titres = document.querySelectorAll('header ul li a')
titres
送我回去的:[a,a,a,a,a]
有人知道爲什麼請嗎?
當我把這個在我的app.js
:對象引用未定義的,但不是在控制檯
var titres = document.querySelectorAll('header ul li a')
console.log(titres)
它送我回去的:[]
,如果我把這個瀏覽器上的控制檯:
var titres = document.querySelectorAll('header ul li a')
titres
送我回去的:[a,a,a,a,a]
有人知道爲什麼請嗎?
'之前。 –
當您在控制檯中鍵入這些語句時,該頁面已被完全解析,因此找到元素並返回包含對這些元素的引用的「類似數組」的對象。
但是,最有可能的,當你在app.js
代碼試試吧,被前整個HTML頁面已經被解析到內存中,這樣執行你的app.js
文件:
<!DOCTYPE html>
<html>
<head>
<title></title>
<!-- At this point, the rest of the HTML hasn't been parsed yet, so
if app.js tries to query for those elements, they won't be found! -->
<script src="app.js"></script>
</head>
<body>
. . .
嘗試要麼把<script src="app.js"></script>
代碼只是body
元素(因此,它運行後的HTML已經被解析)的這樣結束前:
. . .
<script src="app.js"></script>
</body>
</html>
或離開script
標籤在頂部該頁面,但app.js
文件中,包在像這樣的事件處理代碼:
window.addEventListener("DOMContentLoaded", function(){
var titres = document.querySelectorAll('header ul li a')
console.log(titres)
});
將推遲代碼的執行的HTML被加載後,直到。
謝謝你,夥計, 我的
請寄[mcve]。我們需要您的HTML – j08691
因爲頁面上有5個錨點元素 – Erwin
將'.js'文件放在HTML文件的底部,就在'