jQuery et clone() sont dans un bateau
Par Erwan le samedi 21 juillet 2012, 09:24 - Dev - Lien permanent
jQuery et clone() sont dans un bateau. jQuery pousse clone(). Qui tombe à l'eau ?
Internet Explorer 7 bien sûr ! Hum, désolé.
Si vous avez l'habitude de cloner des éléments puis de les modifier via la fonction attr(), sachez qu'Internet Explorer 7 modifiera l'original plutôt que l’élément cloné. Ce comportement ennuyeux apparaît depuis jQuery 1.6 sous IE7 (IE6 ?). La raison est que le clonage n'utilise plus innerHTML mais cloneNode directement. Il y à plusieurs solutions :
Abandonner le support de IE7- Utiliser prop() en lieu et place de attr() (comprenez bien la différence et les implications)
- Utiliser la propriété javascript directement : $input.get(0).name = 'nouveau';
- Faire un sale clonage du genre : var $nouveau = $('<tr>'+$ligne.get(0).innerHTML+'</tr>');
Plus d'informations :
- Le ticket jQuery n°9777