javascript - 我可以自动生成一个对不同元素执行相同操作的 jquery block 吗?

标签 javascript jquery

为了简单起见,假设我有一个元素列表“#a1,a2,a3,a4 ...”和另一个列表“#b1,b2,b3,b4 ...”。我希望在单击 #a1 时显示 #b1,在单击 #a2 时显示 #b2 > 等等。

我可以写:

$("#a1").click(function() {
  $("b1).show();
});
$("#a2").click(function() {
  $("b2).show();
});
...

等等。但如果列表变得更长,代码就会变得很多。

有没有办法自动生成 jQuery?这是一些非常粗糙的 Rails-y 伪代码来说明我想要做什么:

for (ids a1 - a99).each do |id|
  $("#a[id]").click(function() {
    $("#b[id]).show();
  });
end

最佳答案

不要添加 ID,而是添加类。并使用以下方案

$( ".classA" ).click( function() {
    // get index of clicked element among elements with classA
    var index = $( ".classA" ).index( this );  
    // show element from classB with same index as clicked element
    $( ".classB" ).eq( index ).show();  
} );

一个简单的 fiddle https://jsfiddle.net/xjseca5d/

关于javascript - 我可以自动生成一个对不同元素执行相同操作的 jquery block 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36542580/

相关文章:

javascript - Angular 2上传图片按钮正在刷新页面

javascript - 使用 vbscript 获取页面访问时的屏幕宽度

c# - 如何防止 Jquery 可排序连接列表中的重复条目?

Jquery 显示/隐藏 div

javascript - <base> 并链接到一个 ID

javascript - 动态计数器随逗号上升

javascript - 重复 Javascript 代码

javascript - 如何在ajax中使用点击链接时的回调函数

javascript - 如何在 Canvas 中绘制虚线矩形?

javascript - 如何在 Javascript/css 中的嵌套 ul 中选择最低级别 ul