js 如何获取a标签被点击的链接,有多个a标签

现在有个小功能要实现记录点击链接的次数的功能,因为有多个a标签的链接,我想通过js实现获取点击后能够知道鼠标点击的链接是什么,以便我下一步的功能实现,由于不熟悉js,不知道在有很多a标签动态生成的情况下如何获取链接,求高手指点。。
<script type="text/javascript">
function getUrl()
{
alert("111222");
}
</script>
</head>
<body onclick="getUrl()">
<a href="/Report/a.jsp?times=first" target="mainFrame" title="业务系统" style="text-decoration:none;font-family:Helvetica,Arial;font-size:12px">业务系统</a>

<a href="/Report/b.jsp?times=first" target="mainFrame" title="收付费系统" style="text-decoration:none;font-family:Helvetica,Arial;font-size:12px">收付费系统</a>

<a href="/Report/b.jsp?times=first" target="mainFrame" title="各系统综合" style="text-decoration:none;font-family:Helvetica,Arial;font-size:12px">各系统综合</a>

<a href="/Report/c.jsp?times=first" target="mainFrame" title="细分产品线" style="text-decoration:none;font-family:Helvetica,Arial;font-size:12px">细分产品线</a>

<a href="/Report/d.jsp?times=first" target="mainFrame" title="各地市进度排名" style="text-decoration:none;font-family:Helvetica,Arial;font-size:12px">各地市进度排名</a>
</body>

添加onclick事件,获取href属性就知道具体的url地址了
<!DOCTYPE html>
<html>
<body>
<script>
function aclick(self){
   alert(self.href);
}
</script>
<a href="dddd.h" onclick='aclick(this)'>测试1</a>
<a href="dddd2.h" onclick='aclick(this)'>测试2</a>

</body>
</html>

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-20
 function getUrl(a)
{
    var href = a.href;
            alert(href );
}
<a  onclick='getUrl(this)'
    href="/Report/a.jsp?times=first" 
    target="mainFrame" 
    title="业务系统" 
    style="text-decoration:none;
            font-family:Helvetica,Arial;
            font-size:12px"
    >业务系统</a>

追问

a标签是通过xml动态生成的。。。所以我只能把getUrl放在body上

追答<body onclick="bindSth()">
 function getUrl(a)
 {
     var href = a.href; 
            alert(href );
 }
function bindSth(){
    var a = document.getElementsByTag("a");
    for(var i = 0 ; i < a.length ; i++ ){
        a[i].onClick =  getUrl(this) ;
    }
}

第2个回答  推荐于2018-02-27
function getUrl(e) {
    e = e || event;
    var target = e.target || e.srcElement,
        href;
    if (target.tagName === 'A') {
        href = target.href;
        alert(href);
    }
}

<body onclick="getUrl(arguments[0])">

追问

onclick在body上,我是不知道e是什么参数,所以传空的,arguments[0]是什么意思啊?

追答<body onclick="getUrl(arguments[0])">
等于
var body = document.body;
body.onclick = function (e) {
    // arguments[0]是传进来的第一个参数
    // 也就是e
    getUrl(e);
};

追问

var target = e.target || e.srcElement,
href;
这是什么写法,alert没响应

追答// 获取事件来源标签,为了接下来判断是不是点击了链接
var target = e.target || e.srcElement,

// 这个是非IE浏览器(不知道ie高版本有没有支持)
e.target

// IE浏览器
e.srcElement

本回答被提问者和网友采纳
相似回答