循环结果数组的最后一个索引

欧文·希尔米(Irvan Hilmi)

我有以下代码,使用以下命令向每个元素添加事件 addeventlistener

var x, y, z;

elm = elm.normalize();
if(!isobj(elm) && iselm(elm)) {
    elm = new Array(elm);
}

for(x in elm) {
    (function() {
        elm[x].addEventListener('click', function() {
            alert(x);
        });
    })();
}

但是当我单击element通过循环添加事件的任何事件时,它总是显示最后一个索引example就像当我单击element时,它会example在警报框中显示带有文本的警报。

这里是结果console.log(elm)elm = elm.normalize()

[样本:input.sample.fld,例如:input.example.fld]

isobj(elm)是一个function检查是否variable是一个object,就像iselm(elm)是一个function检查是否variable是一个element

由于要解决此问题,我试图(function() { /* i put the addEventListener as above */ })();在循环内使用,但仍然无法正常工作。

我已经确保x始终显示索引,但是我不知道为什么它始终显示事件中的最后一个索引。

请帮助,谢谢您的建议。

尘土飞扬的垃圾

在执行该行代码时,for循环已完成。

有关说明:https : //dzone.com/articles/why-does-javascript-loop-only-use-last-value

let如果您的浏览器支持,则可以使用(有关说明和替代方法,请参见文章)

var x, y, z;

elm = elm.normalize();
if(!isobj(elm) && iselm(elm)) {
    elm = new Array(elm);
}

for(x in elm) {
    (function() {
        let myX = x;
        elm[myX].addEventListener('click', function() {
            alert(myX);
        });
    })();

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

For循环返回最后一个结果

数组 - 最后一个索引

反向数组循环 - 超过索引 0 时返回到最后一个索引

for循环生成的2维JavaScript数组被最后一个循环结果覆盖

在循环中重新分配数组的最后一个索引

JavaScript执行循环,但仅查看数组中最后一个元素的结果

嵌套循环:最后一个循环总是返回最后一个数组对象

PHP删除for循环结果的最后一个逗号

Foreach 循环只返回最后一个结果

Foreach循环仅返回最后一个结果

将for循环结果添加到数组,并在最后一个循环之后显示已添加元素的总和

索引numpy数组的最后一个维度

数组中对象的最后一个索引

JavaScript-删除数组的最后一个索引

XLSX 只写入数组中的最后一个索引

JS数组中非空元素的最后一个索引

如何知道无序数组的最后一个索引

为什么不能选择数组的最后一个索引?

获取json数组中元素的最后一个索引

将元素移到数组的最后一个索引,多维

保留数组的第一个索引元素和最后一个索引元素

VBA数组循环未使用最后一个元素

使用数组删除for循环中的最后一个逗号

对象数组的 for 循环仅考虑最后一个对象

在foreach循环中遍历laravel的结果时,它只保存新数组元素中的最后一个元素?

如何在firestore字段中的数组字段中循环并检索最后一个具有真实值的结果?

用于循环保存最后一个索引而不是按索引保存索引

按索引从结果数组中获取一个元素

PHP 数组中值出现的第一个和最后一个索引