>  Q&A  >  본문

javascript - JS에서 이에 대해 질문하세요.

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

으아아아 으아아아

수정:

으아아아 으아아아

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

滿天的星座滿天的星座2662일 전787

모든 응답(7)나는 대답할 것이다

  • 滿天的星座

    滿天的星座2017-07-05 10:51:51

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


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

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

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-07-05 10:51:51

    this의 이유가 아닙니다.

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

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

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

    으아악

    회신하다
    0
  • 学习ing

    学习ing2017-07-05 10:51:51

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

    회신하다
    0
  • 阿神

    阿神2017-07-05 10:51:51

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

    회신하다
    0
  • 为情所困

    为情所困2017-07-05 10:51:51

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

    으아악

    회신하다
    0
  • 为情所困

    为情所困2017-07-05 10:51:51

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

    으아악

    회신하다
    0
  • 淡淡烟草味

    淡淡烟草味2017-07-05 10:51:51


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

    회신하다
    0
  • 취소회신하다