Bind click event on each li

var li = document.getElementsByTagName("li");
        for (var i = 0; i < li.length; i++) {
            li[i].addEventListener(
                "click",
                function() {
                    console.log(i);
                },
                false
            );
        }

Here Insert Picture Description
Obviously not! Closure of!

var li = document.getElementsByTagName("li");
        for (var i = 0; i < li.length; i++) {
            (function(i) {
                li[i].addEventListener(
                    "click",
                    function() {
                        console.log(i);
                    },
                    false
                );
            })(i);
        }

Use event listeners

var ul = document.getElementsByTagName("ul")[0];
        ul.onclick = function(e) {
            var event = e || window.event;
            var target = event.target || event.srcElement;
            console.log(target.innerText);
        };
Published 37 original articles · won praise 0 · Views 691

Guess you like

Origin blog.csdn.net/weixin_43704007/article/details/105221426