使用javascript进行onclick finction [英] Onclick finction using javascript

查看:48
本文介绍了使用javascript进行onclick finction的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好我在javascript中有这个代码



for(var i = 0,link; i< 5; i ++){

var div = document.createElement(div);

var link = document.createElement(a);

link.innerHTML =Link+ i;

link.onclick = function(){

alert(i);

};

div .appendChild(link);

document.body.appendChild(div);

}



问题





当你点击链接时,警告框总是说5.你会在javascript中修改什么来解决这个问题?

Hi all I have this code in javascript

for (var i = 0, link; i < 5; i++) {
var div = document.createElement("div");
var link = document.createElement("a");
link.innerHTML = "Link " + i;
link.onclick = function () {
alert(i);
};
div.appendChild(link);
document.body.appendChild(div);
}

Problem



When you click on the links, the alert box always says 5. What would you change in the javascript to fix this?

推荐答案

循环内部的JavaScript闭包 - 简单的实际示例 - Stack Overflow [ ^ ]



JavaScript closure inside loops – simple practical example - Stack Overflow[^]

function createlink(i) {
    var link = document.createElement("a");
    link.innerHTML = "Link " + i;
    link.onclick = function () {
        alert(i);
    };

    return link;
}

for (var i = 0, link; i < 5; i++) {
    var div = document.createElement("div");
    var link = createlink(i);
    div.appendChild(link);
    document.body.appendChild(div);
}


它始终为5的原因是因为你的循环将i递增到5并且你警告同一个变量。



你说,
The reason it is always 5 is because your loop increments i to 5 and you alert that same variable.

You said,
引用:

我不想使用link.onclick = function(event) {alert(event.target.innerHTML); };

I don't want to use link.onclick = function (event) { alert(event.target.innerHTML); };

为什么不呢?这些方面的东西是正确的方法。

Why not? Something along those lines is the correct way to do it.


试试这个



try this

for (var i = 0, link; i < 5; i++) {
                
                 var div = document.createElement("div");
                 var link = document.createElement("a");
                 link.innerHTML = "Link " + i;
                 link.onclick = function () {                     
                     alert(this.innerText.split(' ')[1]);
                 };
                 div.appendChild(link);
                 document.body.appendChild(div);
             }


这篇关于使用javascript进行onclick finction的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆