繁体   English   中英

将jquery转换为javascript,在href点击上调用函数

[英]Convert jquery to javascript, call a function on href click

我正在尝试编写一个纯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事件侦听器。

谢谢。

简短答案:

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);
}

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

这具有在不支持queryselector的浏览器中受支持的优势。

像这样在锚标记上添加onclick事件。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM