Estoy usando jQuery v1.6.4. Aquí es el caso de prueba para mi problema:jQuery 1.6.4 problemas de clonación en Internet Explorer 7
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<div id="container"></div>
<div id="clone-tpl">I am a clone template</div>
<script type="text/javascript">
$(function(){
var clone = $('#clone-tpl').clone();
clone.attr('id','other'+Math.random());
clone.text('I am a clone');
$('#container').append(clone);
alert($('#container').html());
alert($('#clone-tpl').attr('id'));
var clone2 = $('#clone-tpl').clone();
clone2.attr('id','other'+Math.random());
clone2.text('I am a clone 2');
$('#container').append(clone2);
alert($('#container').html());
alert($('#clone-tpl').attr('id'));
});
</script>
</body>
</html>
En Mozilla Firefox e Internet Explorer 9 funciona como se esperaba: los clones de clones-TPL dos veces, cambia el ID y anexa los clones para el div contenedor. El contenedor div permanece intacto. El registro de salida de alerta es el siguiente:
<div id="other0.7574357943876624">I am a clone</div>
clone-tpl
<div id="other0.7574357943876624">I am a clone</div><div id="other0.1724491511655708">I am a clone 2</div>
clone-tpl
Pero en Internet Explorer 7 se mete cosas con el clone2, mira lo que alerta dice:
<DIV id=other0.1851332940530379>I am a clone</DIV>
clone-tpl
<DIV id=other0.1851332940530379>I am a clone</DIV><DIV id=clone-tpl>I am a clone 2</DIV>
other0.6041996510541515
no tengo ni idea, ¿cómo alert($('#clone-tpl').attr('id'))
repente pude dar algo más que clone-tpl? Después de todo, si selecciono el elemento por el atributo id clone-tpl, el atributo id DEBE ser clone-tpl, ¡pero no lo es!
¿Qué pasa? ¿Por qué IE7 cambia la identificación de la fuente de clonación si creo un segundo clon?
Por cierto, si vuelvo a jQuery v1.4.2, IE7 comienza a clonar normalmente.
¿Es un error en jQuery v1.6.4? ¿Hay alguna solución para esto?
P.S. Realmente me gustaría evitar volver a 1.4.2 porque 1.6 tiene algunas características útiles que me ayudan a superar algunos otros errores de jQuery: http://bugs.jquery.com/ticket/5684?version=10.
parece que es un error http://stackoverflow.com/questions/7243384/jquery-clone-html-in-ie-bug – Mansuro
@Mansuro - gracias, usted tiene razón. Lo encontré en el sitio de seguimiento de errores de jQuery, esperemos que lo arreglen pronto. Mientras tanto, usaré Javascript native setAttribute, funciona bien. – JustAMartin