这是一小段代码,但我无法让它发挥作用。 我有一个用javascript动态填充的菜单,我点击每个按钮添加一个eventlistener。 现在每个按钮都需要不同的功能,所以我循环使用它们
var list = $("a");
for (var i=0; i<list.length; i++) {
$(list[i]).on("click",function(){alert(i);});
}
使用此代码,每个按钮都会给我一个警告,而不是1,2,3,... 我该如何解决这个问题?
答案 0 :(得分:1)
使用each()代码:
var list = $("a");
list.each(function(index){
$(this).on("click", function(){alert(index);});
});
答案 1 :(得分:0)
i的值在循环中发生变化,但是在循环结束后,i的值为5.每当你调用警报时,它都在寻找变量i,其值现在为5.你需要存储为每件东西增加某个地方的价值。在这个例子中,我给每个按钮一个名为data-myvalue
的HTML5数据属性。
for (var i=0;i<ins.length;i++){
ins[i].setAttribute('data-myvalue',i);
ins[i].addEventListener('click',
function(){alert(this.getAttribute('data-myvalue'));});
}
但您也可以将信息存储在javascript数组中。
答案 2 :(得分:0)
就会调用函数favbrowser
<select id="myList" onchange="favBrowser()">
<option></option>
</select>
然后在javascript中执行此操作以打印菜单项的名称
<script>
function favBrowser()
{
var mylist=document.getElementById("myList");
alert(mylist.options[mylist.selectedIndex].text);
}
</script>