【发布时间】:2016-01-14 04:33:06
【问题描述】:
我想点击字符“-”,它会隐藏并变成“+”,当我点击“+”时, 会显示并变成“-”。 这是我在视图中的代码:
<tr style="">
<td style="width:50%; background-color:#b4abab; height:20px">
<a href="#" style="text-decoration:none"><b id="hide" style="font-size:20px">-</b><b hidden id="show" style="font-size:20px">+</b></a>
<input style="margin-left:10px" id="ChkControllers" type="checkbox" name="ccc" value="@item.ID" />@item.Control
</td>
</tr>
<tr style="width:50%">
<td id="noidung">
@foreach (var lstAction in listAction)
{
if (ViewBag.SelectedRole != null)
{
<input style="margin-left:40px; margin-top:5px;" id="@lstAction.ID" @Tolerance.ModelsAdmin.Utinity.GetActionByRoleControllers((int)@item.ID, ViewBag.SelectedRole, lstAction.ID) type="checkbox" name="aaa" value="@lstAction.ID" />@lstAction.Action
}
else
{
<input style="margin-left:40px; margin-top:5px;" id="@lstAction.ID" type="checkbox" name="aaa" value="@lstAction.ID" />@lstAction.Action
}
}
</td>
</tr>
这是我的 js 代码
<script type="text/javascript">
$(document).ready(function () {
$("#hide").click(function () {
$("#noidung").hide();
$("#hide").hide();
$("#show").show();
});
$("#show").click(function () {
$("#hide").show();
$("#show").hide();
$("#noidung").show();
});
});
......
我想知道为什么我只能在第一行隐藏和显示? 我怎么能用另一行来做呢?
【问题讨论】:
-
因为您的 html 无效。
id属性必须是唯一的,并且您编码$("#noidung").hide();和$("#noidung").show();只会选择带有id="noidung"的第一个元素。您需要改用类名
标签: jquery model-view-controller html-table