ページにリンクがほとんどなく、各リンクに機能を追加したいと考えています。私はループでそれをしました。
これで、オブジェクトの配列を取得できました。リンクに割り当てた関数にオブジェクトの値を渡したい。したがって、リンク配列をオブジェクト配列と一致させたいと考えています。
html
<a href="#">link1</a>
<a href="#">link2</a>
<a href="#">link3</a>
js
var myArray = [
obj1 = {property: "value1"},
obj2 = {property: "value2"},
obj3 = {property: "value3"}
];
var pageLinks = document.getElementsByTagName("a");
for (i = 0, len = pageLinks.length; i < len; i++){
pageLinks[i].attachEvent("onclick", function(i){
alert(myArray[i].property);
}, false);
}
これをやってみましたが、何か足りないと思います。i
inの代わりに配列インデックスを使用すると、正常にalert()
動作します。しかし、一致するものはありません。私はたった1つのオブジェクトで立ち往生しています。をページ リンクだけでなく関数にもloop
渡すにはどうすればよいですか。i
編集: 私は JS が初めてだと言うべきだったと思います。JSでクロージャーが何を意味するのかさえわかりません。バインドについても同じことが言えます...何をすべきか/使用するかを私に伝える代わりに、現在の問題を修正してデモをリンクする方法を教えていただけないでしょうか? 私はJSが初めてなので(これらの用語をすべて知らない)、他の人のコードでロジックを理解するのはちょっと難しいです。ともかく。私は今答えを持っています。ありがとう。