hkguile
hkguile

Reputation: 4359

jQuery selector exclude child table

Here is the jQuery script try to remove the first column of a html table

var order_table = $('.hor-scroll').eq(1);
//alert(order_table.html());
var order_table_copy = order_table;

order_table_copy.find(".order-tables th:first-child").remove();     
order_table_copy.find(".order-tables td:first-child").remove();

but above script also remove the th, td of qty-table

the html

<table cellspacing="0" class="data order-tables" style="width: 100%;">
   <colgroup>
      <col>
      <col width="1">
      <col width="1">
      <col width="1">
      <col width="1">
      <col width="1">
      <col width="1">
      <col width="1">
      <col width="1">
      <col width="1">
   </colgroup>
   <thead>
      <tr class="headings">
         <th width="1">Localisation</th>
         <th>Image</th>
         <th>Product</th>
         <th>Sku</th>
         <th><span class="nobr">Item Status</span></th>
         <th>Unit Price</th>
         <th class="a-center">Qty</th>
         <th>Subtotal</th>
         <th>Marge</th>
      </tr>
   </thead>
   <tbody class="even">
      <tr class="border">
         <td class="a-left"></td>
         <td class="a-center">
            <img src="" width="100px">
         </td>
         <td class="a-left">Laser Pants</td>
         <td class="a-left">test</td>
         <td class="a-center">Mixed</td>
         <td class="a-right">
            <span class="price-excl-tax">
            <span class="price">$64.99</span>                
            </span>
            <br>
         </td>
         <td>
            <table cellspacing="0" class="qty-table">
               <tbody>
                  <tr>
                     <td>Ordered</td>
                     <td><strong>100</strong></td>
                  </tr>
                  <tr>
                     <td>Invoiced</td>
                     <td><strong>100</strong></td>
                  </tr>
                  <tr>
                     <td>Refunded</td>
                     <td><strong>9</strong></td>
                  </tr>
               </tbody>
            </table>
         </td>
         <td class="a-right">
            <span class="price-excl-tax">
            <span class="price">$6,499.00</span>                
            </span>
            <br>
         </td>
         <td class="a-center">
            0<span>%</span>    
         </td>
      </tr>
   </tbody>
   <tbody class="odd">
      <tr class="border">
         <td class="a-left"></td>
         <td class="a-center">
            <img src="" width="100px">
         </td>
         <td class="a-left">Laser Hoody</td>
         <td class="a-left">test</td>
         <td class="a-center">Invoiced</td>
         <td class="a-right">
            <span class="price-excl-tax">
            <span class="price">$84.99</span>                
            </span>
            <br>
         </td>
         <td>
            <table cellspacing="0" class="qty-table">
               <tbody>
                  <tr>
                     <td>Ordered</td>
                     <td><strong>100</strong></td>
                  </tr>
                  <tr>
                     <td>Invoiced</td>
                     <td><strong>100</strong></td>
                  </tr>
               </tbody>
            </table>
         </td>
         <td class="a-right">
            <span class="price-excl-tax">
            <span class="price">$8,499.00</span>                
            </span>
            <br>
         </td>
         <td class="a-center">
            0<span>%</span>    
         </td>
      </tr>
   </tbody>
</table>

but i can't exclude the qty-table, i had tried so many different but not work.

Upvotes: 0

Views: 164

Answers (1)

Neville Nazerane
Neville Nazerane

Reputation: 7019

Try order_table_copy.find(".order-tables th:first-child:not(.qty-table)")

Also look into :first-of-type. And also remember that jQuery selectors returns an array. So if all else fails, you can always use the js filter function of arrays.

Update: To avoid the td the the .qty-table, make sure that the selected td is not a td under the .qty-table

order_table_copy.find(".order-tables tr td:first-child:not(.qty-table td)").remove();

Upvotes: 1

Related Questions