尝试使用单击按钮显示其值属性

时间:2014-03-19 02:08:47

标签: javascript

这是我的代码

for(var i = 0; i<tabs.length; i++)
        {
                alert(tabs[i].getAttribute('value'));
                tabs[i].onclick = function() {
                        alert("clicked");
                        alert(tab[i].getAttribute('value'));
                };
        }

这完全在window.onload函数中。第一个警报起作用,即在页面加载时警告每个输入元素的值。然后,当我单击其中一个按钮时,会提示“clicked”,但不会提示值属性。

假设我有三个选项卡,其值为“home”,“about”和“contact”。有没有办法在没有手动编写每个onclick方法的情况下访问(在这种情况下,只是警告)值(或任何其他)属性?

由于

2 个答案:

答案 0 :(得分:2)

您是否尝试过:

this.getAttribute('value') 

而不是

tab[i].getAttribute('value')?

答案 1 :(得分:2)

我认为你的意思是

tabs[i].getAttribute('value')

而不是

tab[i].getAttribute('value')

无论哪种方式,这里的问题是在触发点击事件之前, i 的值会发生很长的变化。

最简单的解决方案是使用(function (i) {&amp; })(i);

这是作为 i 的新副本创建的&amp;传递给点击事件。

以下是您的代码DEMO。改变后的这个DEMO

更新的代码:

for (var i = 0; i < tabs.length; i++) {
        alert(tabs[i].getAttribute('value'));
        (function (i) {
            tabs[i].onclick = function () {
                alert("clicked");
                alert(tabs[i].getAttribute('value'));
            }
        })(i);
    }