最佳答案
我使用的是 jQuery 数据表插件。我想移动搜索框(。DataTables _ filter)和显示下拉列表的记录数(。DataTables _ length)来自它们的父元素(。将 dataTables _ wrapper)转换为页面上的另一个 div,而不会丢失任何已注册的 javascript 行为。例如,搜索框有一个附加到“ keyup”事件的函数,我想保持它的完整性。
DOM 看起来像这样:
<body>
<div id="parent1">
<div class="dataTables_wrapper" id="table1_wrapper">
<div class="dataTables_length" id="table1_length">
<select size="1" name="table1_length">
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
</div>
<div class="dataTables_filter" id="table1_filter">
<input type="text" class="search">
</div>
<table id="table1">
...
</table>
</div>
</div>
<div id="parent2">
<ul>
<li><a href="#">Link A</a></li>
<li><a href="#">Link B</a></li>
<li><a href="#">Link C</a></li>
</ul>
</div>
</body>
这就是我希望 DOM 在移动之后的样子:
<body>
<div id="parent1">
<div class="dataTables_wrapper" id="table1_wrapper">
<table id="table1">
...
</table>
</div>
</div>
<div id="parent2">
<div class="dataTables_filter" id="table1_filter">
<input type="text" class="search">
</div>
<div class="dataTables_length" id="table1_length">
<select size="1" name="table1_length">
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
</div>
<ul>
<li><a href="#">Link A</a></li>
<li><a href="#">Link B</a></li>
<li><a href="#">Link C</a></li>
</ul>
</div>
</body>
我一直在看。附录()。附录()。前置()及。函数,但是在实际应用中没有任何运气。我还看了。家长()及。但似乎不能编写一个可行的解决方案。我也考虑过改变 CSS,这样元素就绝对定位了——但是坦率地说,页面上到处都是流动的元素,我真的希望这些元素能在它们的新父元素中浮动。
非常感谢你的帮助。