此处为初学者 Javascript 问题。
我正在尝试创建一个函数来查找给定 div 中的所有链接并为每个链接设置一个 onclick 事件。我可以正确获取链接 href,但是当我尝试在 onclick 函数中使用它们时,Javascript 似乎只使用找到的最后一个值:
即 我有这些链接
#目的
# future
#常见问题
当我使用 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);
}
}
最佳答案
这里有一个 closure创建。外部变量 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;
}
关于javascript - 在函数中使用循环值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2108859/