jQuery .text () muestra text doble

Tiene una situación extraña sucediendo. Tengo un <h3> con text en él. Cuando extraigo este text con .text () y luego lo coloco en un <textarea> el text aparece dos veces.

Aquí está jsFiddle.

HTML

 <h3 class="profileRightAboutMeText">Heya, this is all the text.</h3> <textarea class="profileRightAboutMeTextarea"></textarea> 

JQUERY

 $(document).on('click','h6.editMyProfileSection', function() { var originalText = $('h3.profileRightAboutMeText').text(); $('h3.profileRightAboutMeText').fadeOut('fast', function() { $('textarea.profileRightAboutMeTextarea').text(originalText).fadeIn('fast'); }); alert(originalText); }); 

Tanto la alerta como <textarea> muestran el text doble de la siguiente manera:

Heya, este es todo el text. Heya, este es todo el text.

Diría que tiene 2 elementos que coinciden con $ ('h3.profileRightAboutMeText') en la página.

Puede ver aquí: http://jsfiddle.net/KwcGB/ que el text aparece dos veces porque agregué un h3.profileRightAboutMeText adicional al html pero si se quita la línea adicional, solo aparece una vez.

Intenta poner $ ('h3.profileRightAboutMeText') en la console en Firebug y ver cuántos elementos coincide …

JQuery tiene un comportamiento diferente para el método de text() en el caso de duplicates que se direccionan mediante ruta compuesta.

Por ejemplo, deja

 <div id=b class="a">2</div> <div id=b class="a">3</div> 

Entonces

 var val1 = $("#b").text() var val2 = $("#ba").text() // val1 = 2 // val2 = 23 

Para evitar este problema, use .first () para asegurarse

 var val3 = $("#ba").first().text() // val3 = 2 

Para los elementos de formulario, debe usar val() lugar de text() :

 $("textarea.profileRightAboutMeTextarea").val(originalText) 

Además, verifique si tiene duplicates de elementos con la class profileRightAboutMeText .