V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
Departures
V2EX  ›  JavaScript

关于 a 标签 event.target 返回值的问题

  •  
  •   Departures · 2018-05-02 14:03:35 +08:00 · 3062 次点击
    这是一个创建于 2400 天前的主题,其中的信息可能已经有所发展或是发生改变。

    通过事件委托

    <div id="control">
    <ul>
            <li value="edu"><span>abc</span></li>
            <li value="edu"><a href="#edu" >edu</a></li>
            <li value="experience"><a href="#experience">ex</a></li>
    </ul>
    
    <script>
        let control=document.getElementById("control");
        control.addEventListener("click",function find(eve) {
            if(eve.target.nodeName==='A') {
                let href=eve.target;
                alert(href);
    </script>
    

    如果点击第一个 li 标签 alert 的是 span 标签

    但是点击 a 标签的 alert 的是一个 URL,不是 a 标签,这是为什么啊?

    2 条回复    2018-05-02 14:36:53 +08:00
    iNaru
        1
    iNaru  
       2018-05-02 14:14:30 +08:00
    href.toString()
    rabbbit
        2
    rabbbit  
       2018-05-02 14:36:52 +08:00
    alert 方法接收字符串,如果传入其他值,则自动调用 toString 方法转为字符串.
    而 a 节点的 toString 方法继承自 HTMLAnchorElement,该方法返回 URL(相当于调用 a.href)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1216 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:29 · PVG 02:29 · LAX 10:29 · JFK 13:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.