Estoy usando el complemento jQuery DataTables. Me gustaría mover el cuadro de búsqueda (.dataTables_filter) y el número de registros para mostrar el menú desplegable (.dataTables_length) de su elemento principal (.dataTables_wrapper) a otro div en mi página sin perder ningún comportamiento javascript registrado. Por ejemplo, el cuadro de búsqueda tiene una función asociada al evento 'keyup' y quiero mantenerlo intacto.Cómo mover el elemento hijo de uno de los padres a otro usando jQuery
El DOM es el siguiente:
<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>
Esto es lo que me gustaría que el DOM para parecerse después de la mudanza:
<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>
He estado buscando en la .Append() , .appendTo(), .prepend() y .prependTo() funciones pero no han tenido suerte con esto en la práctica. También miré las funciones .parent() y .parents(), pero parece que no puedo codificar una solución viable. También consideré cambiar el CSS para que los elementos estén absolutamente posicionados, pero para ser sincero, la página está configurada con elementos fluidos por todas partes, y realmente quiero que estos elementos floten en sus nuevos padres.
Cualquier ayuda con esto es muy apreciada.
Todas las funciones de manipulación DOM que ha enumerado deberían funcionar bien. Agregar un elemento DOM a un padre diferente lo mueve a la nueva posición manteniendo todos los eventos intactos. ¿Qué es exactamente lo que no funciona para ti? Hay un error? – Anurag