V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
Departures

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

  •  
  •   Departures · May 2, 2018 · 3627 views
    This topic created in 2917 days ago, the information mentioned may be changed or developed.

    通过事件委托

    <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 replies    2018-05-02 14:36:53 +08:00
    iNaru
        1
    iNaru  
       May 2, 2018
    href.toString()
    rabbbit
        2
    rabbbit  
       May 2, 2018
    alert 方法接收字符串,如果传入其他值,则自动调用 toString 方法转为字符串.
    而 a 节点的 toString 方法继承自 HTMLAnchorElement,该方法返回 URL(相当于调用 a.href)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4034 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:08 · PVG 13:08 · LAX 22:08 · JFK 01:08
    ♥ Do have faith in what you're doing.