Javascript 让一个按钮打开正确的表单JQuery

Javascript 让一个按钮打开正确的表单JQuery,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我的php页面中有一个while循环,它通过一个计数器变量为每个按钮和表单设置不同的id。每个按钮都必须打开一个不同的表单(它们都预选了不同的默认信息,这是用于处方续订功能)。我可以通过在javascript中为每个id提供一个单击函数来实现这一点,该函数调用正确表单上的显示。但是,很明显,这是不可扩展的,因此它不能适应我的处方数量。通过网络,我看到人们在使用类,id从这个问题的解决方案开始。但是,当我使用此解决方案时,按钮会打开所有窗体。。。不是期望的行为。目前我的javascript函数如下

我的php页面中有一个while循环,它通过一个计数器变量为每个按钮和表单设置不同的id。每个按钮都必须打开一个不同的表单(它们都预选了不同的默认信息,这是用于处方续订功能)。我可以通过在javascript中为每个id提供一个单击函数来实现这一点,该函数调用正确表单上的显示。但是,很明显,这是不可扩展的,因此它不能适应我的处方数量。通过网络,我看到人们在使用类,id从这个问题的解决方案开始。但是,当我使用此解决方案时,按钮会打开所有窗体。。。不是期望的行为。目前我的javascript函数如下所示:

$('[id^="add-renew-link"]').click(function () {
    $('[id^="add-renew-form"]').show();
});
就像上面提到的,函数确实会被所有不同的ID按钮调用。但是,每次单击其中一个按钮时,该代码就会打开所有表单。ID的形式实际上是add-renew-form0、add-renew-form1、add-renew-form2。。。(添加-续订链接的模式相同)。末尾具有相同编号的表单和链接意味着要链接。有人知道我怎样才能做到这一点吗?非常感谢

尝试使用
.each()
方法:

$('[id^="add-renew-link"]').each(function(i){
  var ths = $(this);
  (function(i){
    ths.click(function(){
      $('#add-renew-form'+i).show();
    }
  })(i);
});
你很接近。
$('[id^=“添加续订表单”]')。show()
将匹配以w/“add renew form”作为id开头的所有元素,这就是为什么单击任何链接/按钮时都会显示所有表单的原因

您可以使用正则表达式从id末尾提取数字,以在关联表单上找到匹配项,如下所示:

$('a[id^=“添加续订链接”])。单击(函数(){
var idx=$(this.attr(“id”).match(/\d+$/)[0];//从id中提取索引号
$(“#添加续订表单”+idx).show();
});

这个jsbin有一个完整的工作示例


不能有多个具有相同ID的DOM元素。您可以在此处为元素分配类:

<div class="add-renew-link"></div>  <div class="add-renew-form"></div>

.

此函数需要I作为参数,如何传递它?
I
循环中的增量。什么功能?
$('.add-renew-link').each( function(x){

    $(this).click(function(){
       $(".add-renew-form:eq("+x+")").show();
    });

});