Javascript Jquery:如何递归地分配文档就绪按钮?

Javascript Jquery:如何递归地分配文档就绪按钮?,javascript,jquery,recursion,Javascript,Jquery,Recursion,我有多个按钮和表,我想递归地将每个按钮id分配给相应的表id 对于每个按钮,该函数都可以帮助我切换它们各自的表。单击按钮1 showHide01将切换表1 table01 //工作功能 /* $function{ $showHide01.onclick,函数{ $table01 tbody.toggle; }; }; */ 变量按钮列表=[showHide01、showHide02a、showHide02b、showHide03a、showHide03b、showHide04]; 变量tabl

我有多个按钮和表,我想递归地将每个按钮id分配给相应的表id

对于每个按钮,该函数都可以帮助我切换它们各自的表。单击按钮1 showHide01将切换表1 table01

//工作功能 /* $function{ $showHide01.onclick,函数{ $table01 tbody.toggle; }; }; */ 变量按钮列表=[showHide01、showHide02a、showHide02b、showHide03a、showHide03b、showHide04]; 变量tableList=[table01 tbody,table02a tbody,table02b tbody,table03a tbody,table03b tbody,table04 tbody] $function{ 变量i=0,len=buttonList.length; 对于i;i 基本上,它将使用html:

<button class="btn btn-info js_toggle-table" data-table-id="table01">Show/hide table</button>
<table id="table01">
检查更新的代码段:

$.js_toggle-table.onclick,functionel{ var tableIdSelector=+$el.target.data'table-id'; $tableIdSelector.toggle; }; 显示/隐藏表01 表1 D2 001 002 显示/隐藏表02a 表02a D2 001 002 显示/隐藏表02b 表2 b D2 001 002 显示/隐藏表3 a 表3 a D2 001 002 显示/隐藏表3 b 表3 b D2 001 002 显示/隐藏表4 表4 D2 001 002 您可以做的是将单个类分配给所有表,并使用数据属性来分隔哪个按钮切换哪个表。这样,您就可以为所有按钮创建一个绑定,并获得要系统切换的表的id

基本上,它将使用html:

<button class="btn btn-info js_toggle-table" data-table-id="table01">Show/hide table</button>
<table id="table01">
检查更新的代码段:

$.js_toggle-table.onclick,functionel{ var tableIdSelector=+$el.target.data'table-id'; $tableIdSelector.toggle; }; 显示/隐藏表01 表1 D2 001 002 显示/隐藏表02a 表02a D2 001 002 显示/隐藏表02b 表2 b D2 001 002 显示/隐藏表3 a 表3 a D2 001 002 显示/隐藏表3 b 表3 b D2 001 002 显示/隐藏表4 表4 D2 001 002
向每个按钮添加一个类,如切换按钮:

<button class="btn btn-info toggle-button" id="showHide04">Show/hide table</button>

向每个按钮添加一个类,如切换按钮:

<button class="btn btn-info toggle-button" id="showHide04">Show/hide table</button>

要使代码正常工作,您必须使用闭包将i的副本保持在其当前值。本页对您遇到的问题进行了简要介绍

变量按钮列表=[showHide01、showHide02a、showHide02b、showHide03a、showHide03b、showHide04]; 变量tableList=[table01 tbody,table02a tbody,table02b tbody,table03a tbody,table03b tbody,table04 tbody] $function{ var i=0, len=按钮列表。长度; 对于i;i要使代码正常工作,您必须使用闭包将i的副本保持在其当前值。本页对您遇到的问题进行了简要介绍

变量按钮列表=[showHide01、showHide02a、showHide02b、showHide03a、showHide03b、showHide04]; 变量tableList=[table01 tbody,table02a tbody,table02b tbody,table03a tbody,table03b tbody,table04 tbody] $function{ var i=0, len=按钮列表。长度; 对于i;i我注意到,当您开始运行代码时,单击的按钮将隐藏下一个表,而不是当前表。也就是说,我点击第一个按钮,第二个表格将被切换,而不是第一个表格不是真的,这是因为当表格被隐藏时,第二个按钮出现在第一个旁边。我已经用一个片段更新了我的答案,其中包含将在按钮标签上切换的表的名称,以及第一个表的id。@Shawn更新的答案解决了您的问题吗?如果是,请将其标记为正确答案,以备将来参考;。谢谢,它可以工作,我正在调试您的代码,jquery还不是很好:我注意到当您开始运行代码时,单击的按钮将隐藏下一个表而不是当前表。也就是说,我点击第一个按钮,第二个表格将被切换,而不是第一个表格不是真的,这是因为当表格被隐藏时,第二个按钮出现在第一个旁边。我已经用一个片段更新了我的答案,其中包含将在按钮标签上切换的表的名称,以及第一个表的id。@Shawn更新的答案解决了您的问题吗?如果是,请将其标记为正确答案,以备将来参考;。谢谢,它可以工作,我只是调试你的代码,对jquery还不是很好:不过这个问题不涉及递归。嘿,伙计,谢谢你的解决方案和文章,不知道闭包。我将仔细阅读这一部分。谢谢不过这个问题不涉及递归。嘿,伙计,谢谢你的解决方案和文章,不知道闭包。我将仔细阅读这一部分。谢谢谢谢,这个解决方案很简单!谢谢,这个解决方案很简单!