JQuery在点击时切换行

前端之家收集整理的这篇文章主要介绍了JQuery在点击时切换行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在点击具有特定ID的行时试图隐藏/显示行的子集.

通过大量搜索网络和大量尝试,我得到了下面的代码.

唯一的问题是这个代码由于某种原因只隐藏/显示第一组行.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
           <title>Test</title>

           <script src="http://code.jquery.com/jquery-1.5.1.min.js" type="text/javascript"></script>

           <script type="text/javascript">

             $(document).ready(function()
             {
                 $('#rowToClick').click(function ()
                 {
                     $(this).nextAll('tr').each( function()
                     {
                         if ($(this).is('#rowToClick'))
                        {
                           return false;
                        }
                        $(this).toggle();
                     });
                 });
             });
           </script>
         </head>          

<body>
<table>
    <tr id="rowToClick"><td>ClickMe</td></tr>
    <tr id="Tr1"><td>Toggled</td></tr>
    <tr id="Tr2"><td>Toggled</td></tr>
    <tr id="Tr3"><td>Toggled</td></tr>
    <tr id="Tr4"><td>Toggled</td></tr>
    <tr id="Tr5"><td>Toggled</td></tr>
    <tr id="rowToClick"><td>ClickMe</td></tr>
    <tr id="Tr6"><td>Toggled</td></tr>
    <tr id="Tr7"><td>Toggled</td></tr>
    <tr id="Tr8"><td>Toggled</td></tr>
    <tr id="Tr9"><td>Toggled</td></tr>
    <tr id="Tr10"><td>Toggled</td></tr>
</table>
</body>

</html>

任何人都有建议和/或可能重写代码

———-更新 – 最终解决方案———–

我最终根据Brandon的输入得到了下面的解决方案,因为我想用相同的行为做更多的嵌套,有点像可折叠的树视图.
不幸的是,这意味着我必须添加一个额外的属性来跟踪状态,但我现在可以忍受,直到我找到另一种方式(例如检查下一行的可见性).

$(document).ready(function () {
             toggleRows('.module','.namespace');
             toggleRows('.namespace','.type');
             toggleRows('.type','.member');
         });

         function toggleRows(parentClass,subClass)
         {
            $(parentClass).click(function () {

                if( $(this).attr("value")=="collapsed")                 
                {
                  $(this).attr("value","expanded");
                  $(this).nextUntil(parentClass).filter(subClass).toggle(true);
                }
                else
                {
                  $(this).attr("value","collapsed");
                  $(this).nextUntil(parentClass).attr("value","collapsed");
                  $(this).nextUntil(parentClass).toggle(false);
                }       

            });
         }

解决方法

首先,您不能拥有多个具有相同ID的行.而不是将id设置为“rowToClick”,设置css类:
<tr class='rowToClick'><td>click me</td></tr>

接下来,这应该工作:

$(document).ready(function()
         {
             $(".rowToClick").click(function() { $(this).nextUntil(".rowToClick").toggle(); });
         });
原文链接:https://www.f2er.com/jquery/175712.html

猜你在找的jQuery相关文章