Yso*_*oL8 1 javascript variables function onclick
初学者Javascript在这里提问.
我正在尝试创建一个函数,找到给定div中的所有链接,并为每个链接设置一个onclick事件.我可以正确获取链接hrefs,但是当我尝试在onclick函数中使用它们时,Javascript似乎只使用找到的最后一个值:
IE我有这些链接
#目的
#未来
#常问问题
当我使用onclick函数时,每个链接都被报告为#faq链接.
这是代码:
function prepareLinks () {
var nav = document.getElementById('navigation');
var links = nav.getElementsByTagName ('a');
for (var i = 0; i<links.length; i++) {
var linkRef = links[i].getAttribute('href').split("#")[1];
links[i].onclick = function () {
var popUp = "You clicked the " +linkRef +" link";
alert (popUp);
}
}
Run Code Online (Sandbox Code Playgroud)
}
这里有一个闭包创建.外部变量linkRef保存在内部onclick函数中.试试这种方式:
clickFunction() {
var popUp = "You clicked the " + this.href.split("#")[1] +" link";
// this should mean current clicked element
alert (popUp);
}
for (var i = 0; i<links.length; i++) {
links[i].onclick = clickFunction;
}
Run Code Online (Sandbox Code Playgroud)