I have HTML that I need to switch between two structures - one nested and one not nested - to make it easier for users to sort page components in cms.
Here before html ...
<p><a href="#" id="restructure">Toggle Structure</a></p> <div id="modules"> <div class="two_column_box"> <div class="column_left"> <p>Some text</p> </div> <div class="column_right"> <p>Some text</p> </div> </div> <div class="two_column_box"> <div class="column_left"> <p>Some text</p> </div> <div class="column_right"> <p>Some text</p> </div> </div> </div>
and after html ...
<p><a href="#" id="restructure">Toggle Structure</a></p> <div id="modules"> <div class="column_left"> <p>Some text</p> </div> <div class="column_right"> <p>Some text</p> </div> <div class="column_left"> <p>Some text</p> </div> <div class="column_right"> <p>Some text</p> </div> </div>
I can separate additional divs without any problems, but returning them later - I just donβt understand how to create html from plain text and existing DOM elements. Here is the code that I still have ...
<script type="text/javascript" charset="utf-8"> $(document).ready(function(){ $('#restructure').toggle( function() { alert('removing structure'); var module_list = $("#modules > div > div"); $("#modules").html(module_list); }, function() { alert('replacing structure'); var idx = 1; var next; var structure = $(""); while((next = $('#modules > div:nth-child(' + idx++ + ')')).length) { var element = next.clone(); if(idx%2==1) { $(structure).append('<div class="two_column_box">').append(element); } else { $(structure).append(element).append('</div>'); } } $("#modules").html(structure); } ); }); </script>
Any help in getting the second switch function to work (or in a more idiomatic version of the working code) would be greatly appreciated ...
Dycey source share