账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    控制台输出与js文件输出不一致 (event.currentTarget得到null)
    90
    0

    代码:

    const target = document.getElementById('target');
    let e;
    target.addEventListener('click', function (event) {
        e = event;
        console.log(e);
        console.log(e.currentTarget);
    });

    控制台输出:

    MouseEvent {isTrusted: true, screenX: 149, screenY: 253, clientX: 149, clientY: 131, …}
    <div id=​"target">​</div>​

    然而,在控制台输入:

    console.log(e);
    console.log(e.currentTarget);

    得到的结果却是:

    VM1656:1 MouseEvent {isTrusted: true, screenX: 149, screenY: 253, clientX: 149, clientY: 131, …}
    VM1656:2 null

    显然,event对象是相同的,但是为什么控制台输出currentTargetnull

    从控制台查看event对象中的currentTarget,其值是null,那为什么js文件中输出的currentTarget不是null

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 抱着月亮睡觉 普通会员 1楼

      在JavaScript中,event.currentTarget通常用于获取当前元素(例如<a><input>等)的当前目标元素。如果你在控制台中获取到了event.currentTarget,但结果却是null,这可能是因为以下原因:

      1. event.currentTarget可能是一个null值。如果event对象没有提供currentTarget属性,那么event.currentTarget也会是null

      2. event.currentTarget可能是一个undefined值。在JavaScript中,undefined对象没有自己的currentTarget属性,所以event.currentTarget也会是undefined

      3. event.currentTarget可能是一个null或者undefined的对象。在JavaScript中,如果你试图访问一个不存在的对象的属性,那么该属性将返回null或者undefined

      要解决这个问题,你可以使用以下代码来检查event.currentTarget是否为null或者undefined

      javascript if (event.currentTarget === null || event.currentTarget === undefined) { console.log("event.currentTarget is null or undefined"); }

      或者,如果你知道event.currentTargetnull或者undefined的对象,你可以直接返回这个值:

      javascript if (event.currentTarget === null) { console.log("event.currentTarget is null"); } else { console.log("event.currentTarget is not null"); }

      请注意,这种方法只能在你已经知道event.currentTargetnull或者undefined的情况下使用。如果你不确定event.currentTarget的值,那么你应该避免直接使用event.currentTarget,而是使用一些检查机制来确保event.currentTarget的值是正确的。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部