Javascript 使用for循环切换div
只是想知道出了什么问题。。我有两个div,分别名为click_1和click_2。。我想切换名为hide的div与它们的编号对应。。假设单击带有隐藏的\u 1,然后单击带有隐藏的\u 2。。但是当我运行代码时,只需单击1即可。。似乎出了什么问题。。。我是新手。。最近学习的jqueryJavascript 使用for循环切换div,javascript,jquery,Javascript,Jquery,只是想知道出了什么问题。。我有两个div,分别名为click_1和click_2。。我想切换名为hide的div与它们的编号对应。。假设单击带有隐藏的\u 1,然后单击带有隐藏的\u 2。。但是当我运行代码时,只需单击1即可。。似乎出了什么问题。。。我是新手。。最近学习的jquery <div id='click_1'> <div id='hide_1'></div> </div> <div id='c
<div id='click_1'>
<div id='hide_1'></div>
</div>
<div id='click_2'>
<div id='hide_2'></div>
</div>
<script>
function toggle_div(id_A,id_B){
for(var i=0; i<3; i++){
var new_A = id_A + i;
var new_B = id_B + i;
$(new_A).click(function(){
$(new_B).toggle();
});
}
}
toggle_div('click_','hide_');
</script>
功能切换分区(id\U A、id\U B){
对于(var i=0;i问题是因为您的id选择器缺少#
前缀:
toggle_div('#click_', '#hide_');
但是,您应该注意,您还需要使用此模式的闭包才能工作,否则new_B
元素将始终是for
循环中引用的最后一个元素
单击1
隐藏1
点击2
隐藏2
功能切换分区(id\U A、id\U B){
对于(变量i=1;i<3;i++){
var new_A=id_A+i;
var new_B=id_B+i;
(职能(a、b){
$(a)。单击(函数(){
$(b).切换();
})
})(新A、新B);
}
}
切换_div(“#单击#”、“隐藏#”);
最好不要将用于循环
用于单击事件!如果您有这样的id,您可以通过单击id拆分来处理
$([id^='click_']])。在(“click”,函数(){
$('#hide'+this.id.split('#'[1]).toggle();
});
点击1
藏身处
点击2
躲藏
amm..对不起..我想只是为了循环..你认为你能解决它吗?我几乎已经完成了答案。但是答案就在一秒钟前发布了。所以我没有发布。@不,请写问题以便它们容易理解。stackoverflow不是聊天,不要使用…到处啊…就是这样!…你需要一个关闭函数..哟你是伴郎……顺便说一句……我喜欢你的简化代码……非常感谢……没问题,很乐意帮忙。不过,我强烈建议你使用后一种模式。