将jquery转换为javascript,在href click上调用一个函数

时间:2014-01-15 22:35:40

标签: javascript tags href event-listener

我正在尝试编写纯JavaScript函数(意味着没有jquery)。当用户单击链接(标记)时,我想运行一个javascript函数。我用Google搜索解决方案,但没找到我要找的东西。下面是jquery解决方案,我想要一个纯JavaScript事件监听器,它监听一个href点击。标签没有附加ID或类。例如:<a href='xxxx'>xxxx</a>

这就是我所拥有的(使用jquery)

    $('a').click(function(e) { 
         var regExp = new RegExp('//'+location.hostname+'($|/)'); 
         var href = $(this).attr('href');
         if (regExp.test(href)) { e.preventDefault();  
    var i = (((href.split('?')[1]).split('/')[0]).split('&')[1]).split('=')[1]; 
activityFeedClick(event,i);  } });

我需要将上面的jquery转换为javascript,基本上我需要将“$('a').click(function(e)”转换为纯JavaScript事件监听器。

感谢。

3 个答案:

答案 0 :(得分:1)

简短回答:

var myFunction = function(e) { 
     var regExp = new RegExp('//'+location.hostname+'($|/)'); 
     var href = this.href;    // please notice this replacement here
     if (regExp.test(href)) { 
         e.preventDefault();  
         var i = (((href.split('?')[1]).split('/')[0]).split('&')[1]).split('=')[1]; 
         activityFeedClick(event,i);  
     } 
}

var links = document.querySelectorAll('a');
for (var i = 0; i < links.length; i++) {
    links[i].addEventListener('click', myFunction);
}

答案 1 :(得分:1)

您可以使用“document.getElementsByTagName”获取DOM中所有“a”元素的节点列表, 然后遍历它们并使用“addEventListener”。

这样做的好处是不支持queryselector的浏览器支持。

答案 2 :(得分:-1)

在这样的锚标签上添加onclick事件。

<a href="#" onclick="someFun(); return false;">click me</a>