问答详情
源自:6-10 jQuery遍历之each()

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

为什么每次都是弹出最后一个列表“”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)

  })

})


提问者:精慕门9116487 2019-10-19 22:57

个回答

  • 慕斯卡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);

        })

    })