我正在嘗試在此頁面上添加代碼:https : //www.w3schools.com/howto/tryit.asp?filename=tryhow_js_filter_elements
但它給了我一個關于 js 的錯誤:
未捕獲的型別錯誤:無法在 main.js?ver=5.8.2:35 處讀取 null 的屬性(正在讀取“getElementsByClassName”)
我正在嘗試將其添加到:https : //nuovosito.lealternative.net/test-browser-4/
它似乎作業正常,只是它找不到當前按鈕的活動類。
編輯:
這里給出錯誤的代碼部分:
// Add active class to the current button (highlight it)
var btnContainer = document.getElementById("myBtnContainer");
var btns = btnContainer.getElementsByClassName("bottone");
for (var i = 0; i < btns.length; i ) {
btns[i].addEventListener("click", function(){
var current = document.getElementsByClassName("active");
current[0].className = current[0].className.replace(" active", "");
this.className = " active";
});
}
uj5u.com熱心網友回復:
您的問題是腳本在#myBtnContainer加載到頁面之前正在執行。這可以通過將您的<script>標簽放置main.js在您<body>下面所有其他 HTML 內容中來解決,或者defer像這樣添加標簽:
<script src='https://nuovosito.lealternative.net/wp-content/themes/twentytwentyone/assets/js/main.js?ver=5.8.2' id='js-file-js' defer></script>
修復它的另一種方法是將所有腳本包裝在一個DOMContentLoaded偵聽器中,這將使里面的內容僅在加載所有 HTML 元素后執行。
document.addEventListener('DOMContentLoaded', () => {
// put your whole script here
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/375139.html
