Javascript for循环和警报

Squ*_*ons 4 javascript

我正在循环链接列表.我可以正确获取title属性,并希望它显示在onclick上.加载页面时,当我点击链接时,会逐个提醒所有链接标题.我究竟做错了什么?

function prepareShowElement () {
var nav = document.getElementById('nav');
var links = nav.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
    links[i].onclick = alert(links[i].title);
    }
}
Run Code Online (Sandbox Code Playgroud)

Ibu*_*Ibu 6

你在做什么实际上是在运行警报功能.将整个事物封装在一个匿名函数中只会在单击时运行它

for (var i = 0; i < links.length; i++) {
    links[i].onclick = function () {
        alert(this.title);
       }
    }
Run Code Online (Sandbox Code Playgroud)

  • @ThiefMaster - `var self = this`在这种情况下不是必需的或有用的.'this'将由事件处理程序设置为指向在调用事件处理程序之前接收到单击的元素.在其他情况下,这段代码是有用的,但不是这里.你可以在这个jsFiddle中看到这个:http://jsfiddle.net/jfriend00/W24nN/ (3认同)