function setclass(element, classname) {
console.log("event");
console.log(element);
element.classList.add(classname);
console.log(element.outerHTML);
}
var tpa = document.querySelectorAll("#topnav a");
for(var i=0; i<tpa.length; i++) {
tpa[i].onclick =() => setclass(tpa[i], "current");
}
要素がsetclass(tpa[i],...)
経由でsetclassに渡されなかった理由がわかりません。 console.log(要素)は "undefined"を記録し、要素が未定義であるため、それ以降のすべてが失敗します。一方配列[index]を関数に渡す
が、これは期待通りに動作します:あなたのループがiterated.Therefore TPA [i]は最後の要素を指すようになります持っていた後
var tpa = document.querySelectorAll("#topnav a");
tpa[0].onclick=() => setclass(tpa[0], "current");
はい。しかし、あなたは関数のトラフを上書きするのを防ぐことができます.bind(これ、tpa [i]、 "現在") –
@Jonasw大丈夫、私はあなたが正しいと思います。 – AvrilAlejandro