简体   繁体   中英

Move table columns from one row into another

I am working with software that automatically generates a form after you select your options, so the code is automatically generated and I cannot directly edit it. The code it outputs for this form is in tables. I would like the Amount, the radio buttons and their labels to all appear in one line however? Because I cannot edit the code directly, is there a way to do this w js? Possibly moving all of the columns into one row? Here is the link to a jsfiddle to the basic code it outputs: https://jsfiddle.net/jelane20/Lt36fq6f/1/

    <table class="form">
 <tbody id="panel">
  <tr>
   <td id="field">
    <label id="amount">Amount</label>
   </td>
   <td class="fieldsRight">
    <table id="options">
     <tbody>
      <tr>
       <td class="controlcell">
        <span class="top" item index="51" amount="25.00" >
         <input id="ad_51_6" type="radio">
          <label for="ad_51_6"> </label>
        </span>
       </td>
       <td class="fieldRight">
        <span>$25.00</span>
       </td>
      </tr>
      <tr>
       <td class="controlcell">
        <span class="top" item index="52" amount="50.00">
         <input id="ad_52_6" type="radio">
          <label for="ad_52_6"> </label>
        </span>
       </td>
       <td class="fieldRight">
        <span>$50.00</span>
       </td>
      </tr>
    </tbody>
  </table>
<tbody>
   </td>
  </tr>
 </tbody>
</table>

Thank you so much for your help!

You may add to your css the following rule:

#options tr {
    display: inline-table;
}

If you want to achieve the same result with jQuery you can write:

$('#options tr').css('display', 'inline-table');

Instead, if you need to move the sub table content to the upper table you can:

$('#options tr td').each(function(i, e) {
   $(this).appendTo('table.form tr:first');
});

The snippet (css solution):

 #options tr { display: inline-table; } 
 <table class="form"> <tbody id="panel"> <tr> <td id="field"> <label id="amount">Amount</label> </td> <td class="fieldsRight"> <table id="options"> <tbody> <tr> <td class="controlcell"> <span class="top" item index="51" amount="25.00"> <input id="ad_51_6" type="radio"> <label for="ad_51_6"> </label> </span> </td> <td class="fieldRight" > <span>$25.00</span> </td> </tr> <tr> <td class="controlcell"> <span class="top" item index="52" amount="50.00"> <input id="ad_52_6" type="radio"> <label for="ad_52_6"> </label> </span> </td> <td class="fieldRight"> <span>$50.00</span> </td> </tr> </tbody> </table> <tbody> </td> </tr> </tbody> </table> 

The snippet (jQuery solution):

 $('#options tr td').each(function(i, e) { $(this).appendTo('table.form tr:first'); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table class="form"> <tbody id="panel"> <tr> <td id="field"> <label id="amount">Amount</label> </td> <td class="fieldsRight"> <table id="options"> <tbody> <tr> <td class="controlcell"> <span class="top" item index="51" amount="25.00"> <input id="ad_51_6" type="radio"> <label for="ad_51_6"> </label> </span> </td> <td class="fieldRight"> <span>$25.00</span> </td> </tr> <tr> <td class="controlcell"> <span class="top" item index="52" amount="50.00"> <input id="ad_52_6" type="radio"> <label for="ad_52_6"> </label> </span> </td> <td class="fieldRight"> <span>$50.00</span> </td> </tr> </tbody> </table> <tbody> </td> </tr> </tbody> </table> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM