페이지에 링크가 거의없고 각 링크에 기능을 추가하고 싶습니다. 나는 그것을 반복했다.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);
}
나는이 일을 시도하지만 난 뭔가를 놓친 것 같아. alert()
에 i
대신 배열 색인을 사용하면 정상적으로 작동합니다. 그러나 일치하는 것이 없습니다. 나는 하나의 obj로 붙어있다. loop
의 i
은 페이지 링크뿐만 아니라 내 기능에 어떻게 전달할 수 있습니까?
편집 : 난 내가 JS에 새로운 해요 언급 했어야 같아요. 나는 JS에서 클로저가 어떤 의미인지 모른다. 바인드에 대해서도 마찬가지입니다 ... 무엇을 해야할지/사용하는 대신 내 현재 문제를 해결하고 데모를 연결하는 방법을 보여줄 수 있습니까? JS에 익숙하지 않기 때문에 (이 모든 용어를 모르는 경우) 누군가 다른 사람의 코드에서 논리를 얻는 것이 다소 어렵습니다. 어쨌든. 나는 지금 대답을 가지고있다. 감사.
클로저로 물린 또 하나의 사례. – Jon
문제는 아니지만 배열을 만들 때'obj1 = '비트가 필요하지 않습니다. 당신은 의도적으로 보이지 않는'obj1'이라는 전역 변수를 만들고 있습니다. –
'.attachEvent()'는 IE에만 해당하며', false' 인수는 아무 것도하지 않는다는 것을 알고 있습니까? –