首页 > 解决方案 > 无法从事件处理程序中的 JQuery 元素将文本值分配给变量

问题描述

这是我 dom 中项目列表的一些事件处理。
使用事件委托,点击处理程序位于父容器上

$( "#list" ).on( "click", "a", (event) => {

            event.preventDefault();
            event.stopImmediatePropagation();

            let text = $(this).parent().children().last().text();

            // The following HAS content (seen in the dev tools debugger !!!!)
            // $(this).parent().children().last().text() 

            // But the text variable gets No content - WHY ?
            // "" is printed....
            console.log(text);   
        });

有任何想法吗?任何帮助表示赞赏。

标签: javascriptjquerydomonclickjquery-events

解决方案


因为您使用箭头功能,this而箭头功能window在浏览器中。

$( "#list" ).on( "click", "a", function (event)  {

    event.preventDefault();
    event.stopImmediatePropagation();

    let text = $(this).parent().children().last().text();

    debugger
    console.log(text);   
});

推荐阅读