我正在尝试编写纯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事件监听器。
感谢。
答案 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>