javascript - JS에서 이에 대해 질문하세요.
滿天的星座
滿天的星座 2017-07-05 10:49:51
0
7
826

왜 이곳에서는 onclick 이벤트가 발생하지 않나요? jquery에서 현재 클릭된 li의 DOM 객체를 얻을 수 있다면, JS에서는 이렇게 사용할 수는 없을까요?

으아아아 으아아아

수정:

으아아아 으아아아

여러분 감사합니다. 이전에는 jquery를 사용했는데, 지금 js를 다시 보니 많은 문제가 발견되었습니다. 앞으로는 이런 어리석은 실수를 다시는 하지 않을 거라 감동받았습니다 ^_^.

滿天的星座
滿天的星座

모든 응답(7)
滿天的星座

클릭하여 이 이벤트를 실행할 수 있나요? SegmentFault를 사용할 수 있습니다.


하지만 코드에 약간의 문제가 있습니다. getElementsByTagName은 배열과 유사한 객체를 반환합니다

이를 탐색한 다음 각 요소에 onclick 값을 할당해야 합니다

大家讲道理

this의 이유가 아닙니다.

onclick 是 DOM 的事件。但是此时的 lis DOM이 아니라 DOM의 모음입니다.

jQuery는 $("ul li")이 jQuery 객체를 반환하기 때문에 이를 처리할 수 있습니다. click 함수가 호출되면 jQuery는 암시적으로 루프를 사용합니다.

lis 很像数组,但是却不是数组。因此可以使用 Array.from 함수를 사용하면 이를 실제 배열로 변환할 수 있습니다.

으아악
学习ing

lis = document.getElementsByTagName("li")는 배열을 가져옵니다.
이벤트를 어떻게 바인딩해야 하나요?

阿神

클릭 이벤트를 작성하려면 .onclick()을 사용하지 마세요. addEventListener('click', function(){console.log(this)})를 사용하여 클릭 이벤트가 실행될 수 있는지 확인하세요. 당신이 lis를 가지고 있기 때문입니다. 이런 이유로 onclick 배열이 작동하지 않습니까?

为情所困

두 번째 코드는 잘못 작성되었습니다. lis는 dom 객체가 아닌 배열이므로 onclick 설정이 쓸모가 없습니다
이렇게 변경하세요

으아악
为情所困

getElementsByClassName这个方法吧,把getElementsByTagName를 사용하여 직접 캡슐화하면 DOM 연산으로 사용할 수 있습니다

으아악
淡淡烟草味


위 그림과 같이 lis는 객체의 배열로 인쇄됩니다. 아이디어에 따라 lis를 순회하여 각 li 객체에 onclick을 바인딩해야 합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿