我正在使用jQuery DataTables 插件。我想将搜索框(.dataTables_filter)和每页显示记录数下拉列表(.dataTables_length)从它们的父元素(.dataTables_wrapper)移动到页面上的另一个div中,同时不会丢失任何已注册的JavaScript行为。例如,搜索框有一个附加到“keyup”事件的函数,我希望保持它的完整性。
这是我希望移动后DOM的样子:
我一直在研究.append()、.appendTo()、.prepend()和.prependTo()函数,但在实践中没有什么进展。我也看过.parent()和.parents()函数,但好像无法编写可行的解决方案。我还考虑过更改CSS,使元素绝对定位,但坦白地说,页面上有许多流体元素,我真的希望这些元素可以在它们的新父级中浮动。
非常感谢您的任何帮助。
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>
我一直在研究.append()、.appendTo()、.prepend()和.prependTo()函数,但在实践中没有什么进展。我也看过.parent()和.parents()函数,但好像无法编写可行的解决方案。我还考虑过更改CSS,使元素绝对定位,但坦白地说,页面上有许多流体元素,我真的希望这些元素可以在它们的新父级中浮动。
非常感谢您的任何帮助。