我正在嘗試創建一個帶有偽路由的網站,當我創建導航欄時,它應該將我作為單擊路徑插入當前陣列的位置,而它總是將我插入它的最后一個位置。
這是我的主要代碼:
function loadHTML(path){
console.log(path);
fetch(path)
.then(response=> response.text())
.then(text=> document.getElementById("root").innerHTML=text);
}
const routes={
home: "./core/pages/home.html",
about: "./core/pages/about.html",
contact: "./core/pages/contact.html"
}
function loadNav(){
var nav=document.getElementById("nav");
for(r in routes){
var li=document.createElement("li");
li.innerHTML=r;
console.log(routes[r]);
li.onclick=()=>{
console.log(routes[r]);
}
nav.append(li);
}
}
loadNav();
我試圖用 addeventlistener 修復(盡管我知道它無論如何都不起作用),但我找不到這個該死問題的任何答案
uj5u.com熱心網友回復:
宣告你的變數,從不使用 var
function loadNav(){
var nav=document.getElementById("nav");
for(const r in routes){
const li = document.createElement("li");
li.innerHTML=r;
console.log(routes[r]);
li.onclick=()=>{
console.log(routes[r]);
}
nav.append(li);
}
}
你已經r全域化了,所以它總是使用最后一個值
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/528310.html
上一篇:如何使用dom從Javascript中的元素中選擇隨機子元素?
下一篇:修改遵循簡單模式的屬性和文本
