我在頁面中有幾個鏈接,我想爲每個鏈接添加一個函數。我已經完成了一個循環。我有一個對象數組。我想將對象值傳遞給我分配給鏈接的函數。所以我想匹配鏈接數組與我的對象數組。JS數組匹配
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
在alert()
它工作正常。但沒有匹配。我被一個obj卡住了。我怎麼能通過loop
的i
不只是頁面鏈接,而且我的功能。
編輯:我想我應該提到,我是新來的JS。我甚至不知道JS的封閉手段。同樣適用於綁定...而不是告訴我該怎麼做/使用你可能只是告訴我如何解決我目前的問題,並鏈接演示可能?由於我是JS新手(不知道所有這些術語),很難在其他人的代碼中獲得邏輯。無論如何。我現在有一個答案。謝謝。
還有一個被封閉咬傷的案例。 – Jon
這不是問題,但是在創建數組時不需要'obj1 ='位。你只是簡單地創建一個名爲'obj1'的全局變量,這似乎不是你的意圖。 –
你意識到'.attachEvent()'僅僅是IE,'false'參數什麼也不做? –