Javascript 将 onclick 事件附加到所有 link 具有 href 变量
Javascript attach an onclick event to all link with href variable
我正在尝试使用 "external-link" 的 class 向我的所有 link 添加一个 onclick 函数。所以我已经成功地完成了它并做了一个测试,无论何时我点击它都会提醒 "it works" 但是 return 那个 link 的 href 如何进入函数?我想把那个变量放在它说“http://www.example.com”的地方。我试过 elements[i].href 但它说它是未定义的。
var elements = document.getElementsByClassName('external-link');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () {
trackOutboundLink(‘http://www.example.com’); return false;
}
}
您的 onclick 回调上下文将是被点击的 link,因此您可以简单地使用 'this.href'
var elements = document.getElementsByClassName('external-link');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () {
trackOutboundLink(this.href); return false;
}
}
您是否考虑过为此使用 jQuery?
它有助于保持简单明了的代码,与大多数浏览器兼容,并使您从处理复杂的对象树中解脱出来。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("a.external-link").click(function(){
alert("You clicked an external link to: " + $(this).attr("href"));
});
});
</script>
</head>
<body>
<a class="external-link" href="http://www.example1.com">Example 1</a><br>
<a class="external-link" href="http://www.example2.com">Example 2</a><br>
<a class="internal-link" href="http://www.example3.com">Example 3</a> - <i>no alert</i>
</body>
</html>
资源:
我正在尝试使用 "external-link" 的 class 向我的所有 link 添加一个 onclick 函数。所以我已经成功地完成了它并做了一个测试,无论何时我点击它都会提醒 "it works" 但是 return 那个 link 的 href 如何进入函数?我想把那个变量放在它说“http://www.example.com”的地方。我试过 elements[i].href 但它说它是未定义的。
var elements = document.getElementsByClassName('external-link');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () {
trackOutboundLink(‘http://www.example.com’); return false;
}
}
您的 onclick 回调上下文将是被点击的 link,因此您可以简单地使用 'this.href'
var elements = document.getElementsByClassName('external-link');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () {
trackOutboundLink(this.href); return false;
}
}
您是否考虑过为此使用 jQuery? 它有助于保持简单明了的代码,与大多数浏览器兼容,并使您从处理复杂的对象树中解脱出来。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("a.external-link").click(function(){
alert("You clicked an external link to: " + $(this).attr("href"));
});
});
</script>
</head>
<body>
<a class="external-link" href="http://www.example1.com">Example 1</a><br>
<a class="external-link" href="http://www.example2.com">Example 2</a><br>
<a class="internal-link" href="http://www.example3.com">Example 3</a> - <i>no alert</i>
</body>
</html>
资源: