Mirá, eliminando las líneas que generan el HTML dinámico esto funciona:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js'></script>
<script type="text/javascript">
jQuery.fn.generaNuevosCampos = function(etiqueta, nombreCampo, indice){
$(this).each(function(){
elem = $(this);
elem.data("etiqueta",etiqueta);
elem.data("nombreCampo",nombreCampo);
elem.data("indice",indice);
elem.click(function(e){
e.preventDefault();
elem = $(this);
etiqueta = elem.data("etiqueta");
nombreCampo = elem.data("nombreCampo");
indice = elem.data("indice");
texto_insertar = "<p><select class='element select medium'><option value='' selected='selected'>Selecciona un investigador de la llista...</option><option>Inverstigador 1</option><option>Investigador 2</option></select></p>'";
indice ++;
elem.data("indice",indice);
nuevo_campo = $(texto_insertar);
elem.before(nuevo_campo);
});
});
return this;
}
$(document).ready(function(){
$("#mascampos").generaNuevosCampos("Selecciona un investigador de la llista...", "compra", 2);
});
</script>
<title></title>
</head>
<body>
<label class="description" for="element_12">Autors de l'article</label>
<div>
<p><select class="element select medium"><option value='0' selected="selected">Selecciona un investigador de la llista...</option><option>Inverstigador 1</option><option>Investigador 2</option></select></p>
<p>
<a href="#" id="mascampos" name="mascampos">Más campos</a>
</p>
</div>
</body>
</html>
Lo que me parece que no es necesario es generar dos veces el mismo HTML. Es decir, generás el <select> que aparece por defecto con PHP y pues con jQuery lo clonás. Es fácil. Si no lo lográs solucionar yo estaría dispuesto a tomarme unos minutos y hacerte un script que haga dicha tarea.
Un saludo.