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

时间:2011-09-16 00:56:51

标签: javascript jquery arrays dom

我正在尝试从我的重新排序表脚本中排除嵌套表/ tr。我查看了JQuery和嵌套表的主题。我尝试的一切只能在中途工作。 $(“#table tr.table_row1”)或$(“table> tr.order_rows”)

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

Heres'我的代码:

    <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);
        }); 
   });

1 个答案:

答案 0 :(得分:0)

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

$("#table tr")

$("#table > tr")

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

相关问题