Javascript 是否隐藏表中的行并再次显示?

Javascript 是否隐藏表中的行并再次显示?,javascript,jquery,asp.net-mvc,xhtml,Javascript,Jquery,Asp.net Mvc,Xhtml,我在ASP.NET MVC视图页面中使用foreach循环。对于foreach操作的集合的每个元素,我创建两行-一行用于显示,一行用于编辑。我想隐藏编辑行,仅在以后根据用户操作显示它 如果我用display:none隐藏编辑行,那么jQuery的show()方法将无法再次显示它-它不起作用。如果我像这样把它藏起来 // I put this inside the foreach loop <script type="text/javascript"> $("#edititem_" +

我在ASP.NET MVC视图页面中使用
foreach
循环。对于
foreach
操作的集合的每个元素,我创建两行-一行用于显示,一行用于编辑。我想隐藏编辑行,仅在以后根据用户操作显示它

如果我用
display:none
隐藏编辑行,那么jQuery的
show()
方法将无法再次显示它-它不起作用。如果我像这样把它藏起来

// I put this inside the foreach loop
<script type="text/javascript">
$("#edititem_" + <%: item.Id %>).hide();
</script>
//我把它放在foreach循环中
$(“#edititem”+).hide();
jQuery的
show()
函数可以在以后显示它,但是页面没有验证,因为它在
标记中(我在这里枚举我的集合并创建

我希望能够根据需要显示/隐藏编辑行,并且仍然有一个XHTML有效页面


如何实现这一点?

使用CSS文件,在编辑行中添加一个
类,在显示行中添加另一个类

如果你写信

.editRows {
  display:none;
}
在CSS文件中,jquery的
.show()
起作用

或者你也可以

$(".editRows").hide();

为了实现优雅的递减,您可以坚持通过jQuery进行隐藏,只需给编辑
行一个类,例如
,然后使用jQuery在表外同时隐藏所有行,如下所示:

<script type="text/javascript">
  $(function() {
    $("tr.edit").hide();
  });
</script>

$(函数(){
$(“tr.edit”).hide();
});

这种方法,而不是用CSS隐藏它们,对那些禁用JS的用户更友好,如果你可能有这样的用户群,那么就用这种方法。

你有没有尝试过Jquery CSS属性display:block?用Jquery隐藏它们的唯一缺点是如果你有一个大表,加载文档时,用户将同时看到显示行和编辑行。隐藏在CSS中会立即隐藏它(当CSS文件被缓存时,通常情况下是这样)@Stefanvds-您也可以将脚本不粘贴在
文档中。如果这是一个问题,准备好了吗
。这是什么意思?那会是什么样子?@Stefanvds-只需放入
$(“tr.edit”).hide()
紧跟在
:)@Stefanvds之后-由于我提到的确切原因,您已断开了禁用JS的用户,您的解决方案不会出现优雅的降级。另外,您不知道作者所处的环境,通常2000多行的表(您的示例)是一个intranet风格的应用程序,这意味着更大的带宽和即时html传输…不要做任何假设,这是一个非常糟糕的做法:)你可以在每一个问题上玩一整天……虽然优雅的降级是肯定的,但你的答案没有或没有提到:)嘿,谢谢,这确实有效,但如果我有一个内联风格(我到现在为止都有),它就没有了。。