使用 jQuery 对表行进行重新排序,但排除嵌套表

发布于 2024-12-05 00:59:30 字数 1936 浏览 0 评论 0原文

我试图从我的重新排序表脚本中排除嵌套表/tr。我已经研究了 JQuery 和嵌套表的主题。我尝试的一切都只成功了一半。 $("#table tr.table_row1") 或 $("table > tr.order_rows")

它位于 for 循环中并从数组中获取顺序。我将不胜感激任何帮助。

这是我的代码:

    <table>
      <tr class="order_rows"> <- pick this row
        <td>
           <table>
             <tr> <- dont pick this                             
                <td><input type="text" name="order1" value="1" id="order1" size="2" /></td>
                 <td></td>
             </tr>
               <tr> <- dont pick this row           
                <td>...</td>
             </tr>
          </table>
       </td>
  </tr>
  <tr class="order_rows">  <- pick this row
     <td>
        <table>
           <tr> <- dont pick this row                           
             <td><input type="text" name="order1" value="1" id="order1" size="2" /></td>
                 </tr>
                 <tr> <- dont pick this row
                    <td>...</td>
              </tr>
            </table>
         </td>
      </tr>
    </table>

这是我正在处理的 JQuery。

    function reorder(NewOrder)
    {   
    var orderedTrs = new Array();       
    alert(NewOrder);
    for ( i=0; i<=NewOrder.length; i++ ) orderedTrs[i] = $("#table tr")[NewOrder[i]];
    alert(orderedTrs);
    for ( i=0; i<=NewOrder.length; i++ ) $("#table").append(orderedTrs[i]);
    }


    $(document).ready(function()
    {       
        $(".updateButton:button").click(function()
        {           
         var NewOrder = new Array;
         NewOrder[0] = parseInt($("#order1").val()); 
         NewOrder[1] = parseInt($("#order2").val());        
        reorder(NewOrder);
        }); 
   });

I'm trying to exclude nested tables/tr from my Reorder Table script. I have looked at the topic of JQuery and nest tables. Everything I try only work half way.
$("#table tr.table_row1") or $("table > tr.order_rows")

it's in a for loop and picks up the order from an array. I would appreciate any help.

Heres' my code:

    <table>
      <tr class="order_rows"> <- pick this row
        <td>
           <table>
             <tr> <- dont pick this                             
                <td><input type="text" name="order1" value="1" id="order1" size="2" /></td>
                 <td></td>
             </tr>
               <tr> <- dont pick this row           
                <td>...</td>
             </tr>
          </table>
       </td>
  </tr>
  <tr class="order_rows">  <- pick this row
     <td>
        <table>
           <tr> <- dont pick this row                           
             <td><input type="text" name="order1" value="1" id="order1" size="2" /></td>
                 </tr>
                 <tr> <- dont pick this row
                    <td>...</td>
              </tr>
            </table>
         </td>
      </tr>
    </table>

This is my JQuery that I'm working on.

    function reorder(NewOrder)
    {   
    var orderedTrs = new Array();       
    alert(NewOrder);
    for ( i=0; i<=NewOrder.length; i++ ) orderedTrs[i] = $("#table tr")[NewOrder[i]];
    alert(orderedTrs);
    for ( i=0; i<=NewOrder.length; i++ ) $("#table").append(orderedTrs[i]);
    }


    $(document).ready(function()
    {       
        $(".updateButton:button").click(function()
        {           
         var NewOrder = new Array;
         NewOrder[0] = parseInt($("#order1").val()); 
         NewOrder[1] = parseInt($("#order2").val());        
        reorder(NewOrder);
        }); 
   });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终弃我 2024-12-12 00:59:30

我还没有评估其余代码的逻辑,但对您的问题最明显的答案是将您的选择器从 修改为 ,

$("#table tr")

从而

$("#table > tr")

确保您仅选择直接子 TR 而不是所有后代 TR。

I haven't evaluated the logic of the rest of your code, but the most obvious answer to your issue would be to modify your selector from

$("#table tr")

to

$("#table > tr")

thus ensuring that you select only direct child TRs and not all descendant ones.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文