Qu’est-ce qui, dans ce code jQuery, échoue pour IE6 et IE7?

Ce morceau de jQuery duplique un élément dans un formulaire. Cela fonctionne dans tous les navigateurs sauf IE6 et IE7. En effet, lorsqu’il duplique le formulaire, il n’incrémente pas l’atsortingbut name (comme dans tous les autres navigateurs):

Dans IE6 et IE7, le code source interprété IE d’IETester ressemble à ceci:

 

C’est le jQuery qui le produit.

 $(".add_another").click(function(){ if ($(".payment:last").find("input").val() != "") { var $newdiv = $(".payment:last").clone(true); $newdiv.find('input').each(function() { var $this = $(this); $this.attr('id', $this.attr('id').replace(/_(\d+)_/, function($0, $1) { return '_' + (+$1 + 1) + '_'; })); $this.attr('name', $this.attr('name').replace(/\[(\d+)\]/, function($0, $1) { return '[' + (+$1 + 1) + ']'; })); $this.val(''); }); $newdiv.find('textarea').each(function(){ var $this = $(this); $this.attr('id', $this.attr('id').replace(/_(\d+)_/, function($0, $1) { return '_' + (+$1 + 1) + '_'; })); $this.attr('name', $this.attr('name').replace(/\[(\d+)\]/, function($0, $1) { return '[' + (+$1 + 1) + ']'; })); $this.css("color","#cccccc"); }); $newdiv.insertAfter('.payment:last').hide().slideDown(); }; return false; });