zoukankan      html  css  js  c++  java
  • JS和jQuery中ul li遍历获取对应的下角标

    首先先看代码:

    html代码部分:

    <div id="div">
                <ul>
                    <li>1111111</li>
                    <li>2222222</li>
                    <li>3333333</li>
                    <li>4444444</li>
                    <li>5555555</li>
                    <li>6666666</li>
                </ul>
            </div>

    对应的JS的代码部分:

    var list = document.getElementsByTagName("li");
    for(var i = 0; i < list.length; i++) {
                list[i].onclick = function() {
                    console.log(i);
                }
            }

    上面当我们在ul li遍历时,点击每一个li标签,往往取不到对应的下角标,在控制台打印出来的都是最后一个的值6。

    为什么会产生这样的问题呢?

    解决方案一:

    JS方法

    var list = document.getElementsByTagName("li");
            for(var i = 0; i < list.length; i++) {
                list[i].index = i;
                list[i].onclick = function() {
                    console.log(this.index);
                }
            }
            

    解决方案二:

    jquery方法

    $(function() {
                $('#div').find('li').each(function() {
                    $(this).click(function() {
                        console.log($(this).index());
                    })
                })
    
            })

    上面记得别忘了引入jQuery框架。

    解决方案三:

    直接利用jquery中的index

    $(function() {
                $("li").on("click", function() {
                    var i = $(this).index(); //当前索引值
                    alert(i);
                })
            })

    解决方案四:

    window.onload = onclickList;
            function onclickList() {
                var list = document.getElementsByTagName("li");  
                for(var i = 0; i < list.length; i++)   {
                    list[i].onclick = (function(i) {  
                        return function() {    
                            alert("我是第" + (i + 1) + "个list");  
                        }
                    }(i))  
                }
            }

    解决方案五:

    $(function() {
                $('ul li').click(function() {
                    alert($(this).index() + 1);
                    return false;
                });
            });

    故整理以上方案,欢迎交流学习。

  • 相关阅读:
    composer安装Workerman报错:Installation failed, reverting ./composer.json to its original content.
    从零开始搭建linux下laravel 5.5所需环境(三)
    ASPNET Razor 使用 @Ajax.BeginForm 需要注意到的细节
    .NET跨平台
    1172金币
    1044电子表
    1358统计号码牌
    1355疫情防控 数据调查
    1056反向输出一个三位数2
    1071行李托运
  • 原文地址:https://www.cnblogs.com/wangzhenhai/p/6484933.html
Copyright © 2011-2022 走看看