事件代理/事件委托----点击li弹出对应的下标和内容

复制代码
<body>
    <ul>
        <li>这是第一行</li>
        <li>这是第二行</li>
        <li>这是第三行</li>
        <li>这是第四行</li>
        <li>这是第五行</li>
    </ul>
</body>
复制代码

第一种:

    var lis=document.getElementsByTagName("li");
    for(var i=0;i<lis.length;i++){
        lis[i].index=i;     // 给每个li赋一个下标 
        lis[i].onclick=function(){
            alert(this.index+"----"+this.innerHTML);
        };
    }

第二种:

    var lis=document.getElementsByTagName("li");
    for(var i=0;i<lis.length;i++){
        (function(n){
            lis[n].onclick=function(){
                alert(n+this.innerHTML);
            };
        })(i);
    }

第三种:

    var lis=document.getElementsByTagName("li");
    for(var i=0;i<lis.length;i++){
        lis[i].onclick=function(n){
            return function(){
                alert(n+lis[n].innerHTML);
            };
        }(i);
    }

第四种:

    $("ul li").click(function(){
        var i=$(this).index();
        var text=$(this).text();
        alert(i+text);
    });

第五种:(事件代理)

复制代码
    var ul=document.getElementsByTagName("ul")[0];
    ul.addEventListener("click",clickHandler);
    function clickHandler(e){
        if(e.target.nodeName!=="LI") return;    // 或者写 if(e.target.constructor!==HTMLLIElement) return;
        var arr=Array.from(ul.children);
        var index=arr.indexOf(e.target);
        var text=arr[index].innerHTML;
        console.log(index+text)
    }
复制代码

第六种:(jq事件代理)

    $(function(){
        $("ul").click(function (e) {  
            var target=$(e.target);
            var index=target.index();
            var text=target.text();
            console.log(index+text)
        });
    });
posted @   吴小明-  阅读(1744)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示