用jquery隐藏和显示tablerow元素

时间:2011-05-13 06:39:52

标签: jquery asp.net css

我有一个简单的功能,可以在用户点击链接时显示和隐藏元素。

目前设置如下:

$('div.box table a').click(function (e) {

    stopEvent(e);
    var self = $(this);

    if ($("#" + self.text()).css('display', 'none')) {
        $("#" + self.text()).show('slow');

        return;
    }
    else if ($("#" + self.text()).css('display', 'table-row')) {
        $("#" + self.text()).hide();

        return;
    }

});

所以基本上,如果用户点击链接,我会得到具有ID的表格,该ID是链接的文本。我还检查tr的“显示”标签,以确定我是应该显示还是隐藏。

可悲的是,因为所有的地狱和隐藏都不起作用,所以它是错误的。

感谢任何帮助!

编辑:Html部分,按要求:

        <%  bool even = true;
            foreach (var item in ViewBag.NefList)
          {%>
                <tr <%: even? "class=even" : "" %>>
                    <td><%: Html.ActionLink(item.Artno, "action", new { artno = item.Artno, week = ViewBag.Week, projectID = item.projectID  })%></td>
                    <td><%: item.projectName%></td>
                    <td><%: item.qty%></td>
                    <td><%: item.totalStock%></td>
                    <td><%: item.Description%></td>
                </tr>
                <tr <%: even? "class=even" : "" %> style="display: none" id ="<%: item.Artno %>"> <td>Hello</td></tr>
         <% even = !even;
          } %>   
</table>

3 个答案:

答案 0 :(得分:2)

您的检查中有错误,以确定该元素是否可见。切换方法将为您解决此问题。

$('div.box table a').click(function (e) {
    var self = $(this);
    e.preventDefault

    $("#" self.text()).toggle('slow');
});

答案 1 :(得分:0)

试试这个,

  else if ($("#" + self.text()).css('display', 'block')) {
            $("#" + self.text()).hide();

            return;
        }

答案 2 :(得分:0)

使用

if ($("#" + self.text()).is(':visible')) {

检查元素是否可见。并采取相应行动。

在类似的说明中,您可以使用.toggle()方法使用jQuery显示/隐藏元素。