#javascript #jquery
#javascript #jquery
Вопрос:
Я работаю с программным обеспечением, которое автоматически генерирует форму после выбора параметров, поэтому код генерируется автоматически, и я не могу его редактировать напрямую. Код, который он выводит для этой формы, находится в таблицах. Однако я хотел бы, чтобы количество, переключатели и их метки отображались в одной строке? Поскольку я не могу редактировать код напрямую, есть ли способ сделать это с помощью js? Возможно, перемещение всех столбцов в одну строку? Вот ссылка на jsfiddle к базовому коду, который он выводит: 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>
Большое спасибо за вашу помощь!
Комментарии:
1. Можете ли вы отредактировать свой файл, чтобы показать, как вы хотите, чтобы ваш вывод выглядел? Вы просто хотите, чтобы элементы из формы были в одной строке??
Ответ №1:
Вы можете добавить в свой css следующее правило:
#options tr {
display: inline-table;
}
Если вы хотите добиться того же результата с помощью jQuery, вы можете написать:
$('#options tr').css('display', 'inline-table');
Вместо этого, если вам нужно переместить содержимое вложенной таблицы в верхнюю таблицу, вы можете:
$('#options tr td').each(function(i, e) {
$(this).appendTo('table.form tr:first');
});
Фрагмент (решение css):
#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>
Фрагмент (решение jQuery):
$('#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>
Комментарии:
1. Ты мой герой, это намного проще, чем то, как я пытался это сделать. Большое вам спасибо!!