개발자

이 코드에서 왜 item.help가 변경되지 않는 건가요?

2023년 06월 08일조회 56

이 코드에서 매번 똑같은 글이 출력되는데 왜 그런 걸까요..?

1function showHelp(help) {
2      document.getElementById('help').innerHTML = help;
3    }
4
5    function setupHelp() {
6      var helpText = [
7          {'id': 'email', 'help': 'Your e-mail address'},
8          {'id': 'name', 'help': 'Your full name'},
9          {'id': 'age', 'help': 'Your age (you must be over 16)'}
10        ];
11
12      for (var i = 0; i < helpText.length; i++) {
13        var item = helpText[i];
14        document.getElementById(item.id).onfocus = function() {
15          showHelp(item.help);
16        }
17      }
18    }
19
20    setupHelp();
이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

문승욱(카이론)님의 프로필 사진

3번만 계속 나오나요? 의도한 바가 포커스가 올때마다 다른 텍스트를 띄우는 거라면 (슈도 코드로 쓸게요) var i = 0; var helptext=blah~blah~ onfocus= function() { i = i+1; if (i>helphext.length) i = 0; showHelp(helpText(i)) } 이런식으로 코드가 구성되야 하겠네요. 님이 하신대로 하면 이미 아이템이 한바퀴 다 돌고 나서 focus가 실행되기 때문에 그렇습니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!