用each()方法点击列表弹出此列表的内容

来源:6-10 jQuery遍历之each()

精慕门9116487

2019-10-19 22:57

为什么每次都是弹出最后一个列表“”canvas“”


HTML

<ul>

        <li>HTML</li>

        <li>CSS</li>

        <li>JavaScript</li>

        <li>jQuery</li>

        <li>canvas</li>

    </ul>

----------------------

JQ

 $("li").each(function(index){

 

  $("li").click(function(){

    var $q=$(this).text();

alert($q)

  })

})


写回答 关注

2回答

  • 慕斯卡4073455
    2020-04-11 14:34:45

    改成这样

    $("li").each(function(index){

        $(this).click(function(){

        var $q=$(this).text();

    alert($q)

    })

    })

    或者这样

     $('li').click(function(){

        var $q=$(this).text();

    alert($q)

    })


  • 慕粉2133093261
    2019-10-21 09:57:52

    不是每次弹出最后一个li,而是你弹出5次你当前点击的li的文本内容。

    如果你想点击每个li循环弹出jquery得的的类数组的值,要给每个li元素绑定一个时间,在事件里边循环,而不是先循环再绑定事件。你想点击每个li循环出你的jquery合集的每个li元素的的话,应该:

    $("li").on("click",function (){

        $("li").each(function (key,element){

            alert(element.innerHTML);

        })

    })


    慕粉2133...

    each的element是一个HTMLElement不是Jquery对象,所以用原生的JS属性,不用Jquery的

    2019-10-21 09:59:50

    共 1 条回复 >

jQuery基础(二)—DOM篇

jQuery第二阶段开启DOM修炼,了解创建、插入、删除与替换

114014 学习 · 590 问题

查看课程

相似问题