Javascript 通过Id调用数组元素来循环数组元素
如何在包含5个元素的数组上循环。我有5个ID元素,比如imgone、imgtwo、imgtree、imgfour、imgfiveJavascript 通过Id调用数组元素来循环数组元素,javascript,jquery,arrays,jquery-selectors,css-selectors,Javascript,Jquery,Arrays,Jquery Selectors,Css Selectors,如何在包含5个元素的数组上循环。我有5个ID元素,比如imgone、imgtwo、imgtree、imgfour、imgfive var ids = [ "#imgone", "#imgtwo", "#imgthree", "#imgfour", "#imgfive" ]; for (var i = 0; id = ids[i]; i++) { $(id).click(function() { $("#cell1,#cel
var ids =
[
"#imgone",
"#imgtwo",
"#imgthree",
"#imgfour",
"#imgfive"
];
for (var i = 0; id = ids[i]; i++)
{
$(id).click(function() {
$("#cell1,#cell2,#cell3,#cell4,#cell5").hide();
$("#cell" + (i+1)).show();
});
}
});
然后我有一个5 a标记元素,比如
<a href="#" id="imgone"><img src ="myimage1" /></a>
<a href="#" id="imgtwo"><img src ="myimage2" /></a>
<a href="#" id="imgthree"><img src ="myimage3" /></a>
<a href="#" id="imgfour"><img src ="myimage4" /></a>
<a href="#" id="imgfive"><img src ="myimage5" /></a>
cell1、cell2等是我的块,我需要在单击元素时显示/隐藏这些块
顺便说一句,这段代码总是隐藏所有单元格块并显示cell6,这在我的代码中并不存在。
我是说$cell+I+1.show;从不将i的值设为0、1、2、3或4
那么我如何迭代数组并显示隐藏单元格呢。我认为这行代码$id.clickfunction有问题,但不知道是什么?这是一个闭包问题,我指向循环中使用的变量,在执行时它总是6 请改用此代码
for (var i = 0; id = ids[i]; i++)
{
var fnc = function(j){
return function() {
$("#cell1,#cell2,#cell3,#cell4,#cell5").hide();
$("#cell" + (j+1)).show();
};
}(i);
$(id).click(fnc);
}
有关javascript闭包的更多信息,请参见这是一个闭包问题,变量i指向循环中使用的i,在执行时它始终为6 请改用此代码
for (var i = 0; id = ids[i]; i++)
{
var fnc = function(j){
return function() {
$("#cell1,#cell2,#cell3,#cell4,#cell5").hide();
$("#cell" + (j+1)).show();
};
}(i);
$(id).click(fnc);
}
有关javascript闭包的更多信息,请参见,您可以jquery它:
var ids =
[
"#imgone",
"#imgtwo",
"#imgthree",
"#imgfour",
"#imgfive"
];
$(ids.join(,)).each(function(i){
$(this).click(function(){
$("#cell1,#cell2,#cell3,#cell4,#cell5").hide();
$("#cell" + (i+1)).show();
});
});
您可以jquery它:
var ids =
[
"#imgone",
"#imgtwo",
"#imgthree",
"#imgfour",
"#imgfive"
];
$(ids.join(,)).each(function(i){
$(this).click(function(){
$("#cell1,#cell2,#cell3,#cell4,#cell5").hide();
$("#cell" + (i+1)).show();
});
});
$this.clickfunction{Control永远不会进入这个函数。顺便说一句,这个函数是什么?参数ii是迭代元素的索引。请参阅。为什么你说这个不起作用?因为它不起作用,尽管它应该起作用。为什么我说Control永远不会进入这个函数,因为我在$this.clickfunction后面放了一个简单的alerthi{…它没有被执行。你试过吗?你使用的是什么版本的jquery?我不知道在witch版本的jquery中,选择器数组selector selector引入了$[selector1,selector2,…selectorn],所以你可以试着使用逗号分隔的选择器:$selector1,selector2,…selectorn。请参阅更新$this.clickfunction{Control从来没有进入过这个函数。顺便说一句,这个函数的参数ii是迭代元素的索引。更多信息请参见。你为什么说它不起作用?因为它不起作用,尽管它应该起作用。为什么我说Control从来没有进入过这个函数,因为我在$this.clickfunction后面放了一个简单的alerthi{…它没有被执行。你试过了吗?你用的是什么版本的jquery?我不知道在witch版本的jquery中,选择器数组selector引入了$[selector1,selector2,…selectorn],所以你可以试着使用逗号分隔的选择器:$selector1,selector2,…selectorn。参见更新