Jquery 隐藏和显示表中共享相同ID的行数

Jquery 隐藏和显示表中共享相同ID的行数,jquery,html,razor,Jquery,Html,Razor,我在动态生成行,我在标记中添加了一个ID值,因此生成的每一行都具有相同的ID。问题是,当我试图隐藏和显示这些行时,它只是隐藏和显示第一行,尽管还有很多行 <tr style="color: lightgrey; display: none" id="deletedTrainingRecords"> <td>@d</td> <td>@e.Training

我在动态生成行,我在
标记中添加了一个ID值,因此生成的每一行都具有相同的ID。问题是,当我试图隐藏和显示这些行时,它只是隐藏和显示第一行,尽管还有很多行

 <tr style="color: lightgrey; display: none" id="deletedTrainingRecords">
                        <td>@d</td>
                        <td>@e.TrainingDate.ToShortDateString()</td>
                        <td>@e.DateAdded.ToShortDateString()</td>
                        <td>@e.AddedBy</td>

                        <td class="@cls[0]"></td>
                        <td>
                            <a class="fa fa-flag-o" style="cursor: default" title="Deleted Record"></a>
                        </td>
                    </tr>

@d
@e、 TrainingDate.ToShortDateString()的
@e、 DateAdded.ToSortDateString()
@e、 加上

正如guradio所说,ID必须是唯一的。使用class而不是ID,然后可以调用
document.getElementsByClassName
$(“.className”)
来访问这些元素

如果您提供了隐藏行的代码,那就太好了。在jquery中,您可以使用下面的代码行


$(“#deletedTrainingRecords”)。隐藏(

在处理显示和隐藏的事件上使用此代码

$(document).find("tr#deletedTrainingRecords").each(function(){
   //dosomething
})
如果可以,请避免使用中介绍的相同id,您可以将id更改为class。并将上述选择器从
tr#deletedTraingRecords
更改为
tr.deletedTrainingRecords

$(document).find("tr.deletedTrainingRecords").each(function(){
   //dosomething
})

或者像Locke说的那样,将它们更改为类,然后

$(“.deletedTrainingRecords”).show()或.hide()

行具有相同的ID
ID应始终为UNIQUE@guradio有没有一种方法可以标记一组元素以显示和隐藏它们?使用类和索引来判断您指的是哪个tr动态添加行时,您可能会增加一个变量并将其包含在ID中。例如
ID=“row#”
其中#是变量。如果他想一次访问所有变量,这是一个糟糕的解决方案,它将只隐藏第一行,因为$(“#anyID”)最多返回一个元素