
通过事件委托
<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 标签,这是为什么啊?
1 iNaru 2018-05-02 14:14:30 +08:00 href.toString() |
2 rabbbit 2018-05-02 14:36:52 +08:00 alert 方法接收字符串,如果传入其他值,则自动调用 toString 方法转为字符串. 而 a 节点的 toString 方法继承自 HTMLAnchorElement,该方法返回 URL(相当于调用 a.href) |