替代this.id.slice(-1),我的代码很快就会停止工作

时间:2016-03-30 23:51:39

标签: jquery

我刚发现 this.id.slice(-1)只能从id 0到9工作。

在停止工作之前我需要一个新的选择。这就是我所拥有的。

$("a.toggle_showhide_links").click(function() {
  $("#showhide" +this.id.slice(-1)).slideToggle(400);
});

这是一个至少运行5次的循环。

<tr>
    <td><a id='link-".$x."' class='toggle_showhide' href='#!'>CLICK</a></td>
</tr>
<tr id='showhide-".$x."' style='display:none;'>
    <td style='border:1px solid black;' colspan='2'>
           <!-- Hideable contents-->
    </td>
</tr>";

最后,我从这个Stackoverflow thread

尝试了这个
var number = $('tr').attr('id').split("-")[1];

$( "a.toggle_showhide_links_").click(function() {
     $("#showhide-" + (number.split("-")[1])).slideToggle(400);
    });

Uncaught TypeError: Cannot read property 'split' of undefined

1 个答案:

答案 0 :(得分:0)

如果ID始终遵循模式link-<number>showhide-<number>,那么从另一个ID生成一个ID的一种非常简单的方法是替换linkshowhide部分:

$('#' + this.id.replace('link', 'showhide'))