$('pre.highlight').each(function() { var pre = $(this); var text = $('li', pre).map(function() { return $(this).text(); }).get(); var textarea = $(''); var div = $('').insertBefore(pre); var toggle = false; $('a', div).click(function() { toggle ? textarea.replaceWith(pre) : pre.replaceWith(textarea); toggle = !toggle; return false; }); });